#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mouse.c,v 1.134 2012/01/21 19:21:29 KO.Myung-Hun Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.138 2012/02/29 10:38:46 tom Exp $")
#include <tic.h>
/* sit and wait on the event queue */
rc = MouReadEventQue(&mouev, &fWait, hmou);
if (rc) {
- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
+ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
+ "Error reading mouse queue, rc=%lu.\r\n", rc);
break;
}
if (!sp->_emxmouse_activated)
finish:
oldstate = mouev.fs;
}
- } else
- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n",
- nbuttons, rc);
+ } else {
+ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
+ "Error setting event mask, buttons=%d, rc=%lu.\r\n",
+ nbuttons, rc);
+ }
DosWrite(2, err, strlen(err), &rc);
MouClose(hmou);
#if USE_GPM_SUPPORT
static bool
-allow_gpm_mouse(void)
+allow_gpm_mouse(SCREEN *sp)
{
bool result = FALSE;
- /* GPM does printf's without checking if stdout is a terminal */
+#if USE_WEAK_SYMBOLS
+ /* Danger Robinson: do not use dlopen for libgpm if already loaded */
+ if ((Gpm_Wgetch)) {
+ if (!sp->_mouse_gpm_loaded) {
+ T(("GPM library was already dlopen'd, not by us"));
+ }
+ } else
+#endif
+ /* GPM does printf's without checking if stdout is a terminal */
if (isatty(fileno(stdout))) {
char *list = getenv("NCURSES_GPM_TERMS");
char *env = getenv("TERM");
/* Try gpm first, because gpm may be configured to run in xterm */
#if USE_GPM_SUPPORT
- if (allow_gpm_mouse()) {
+ if (allow_gpm_mouse(sp)) {
if (!sp->_mouse_gpm_loaded) {
#ifdef HAVE_LIBDL
load_gpm_library(sp);