From 6147cf303eba951b78b416aade6d052cac36a94c Mon Sep 17 00:00:00 2001 From: Dmitry Alexeyev Date: Wed, 24 Dec 2003 07:21:34 +0000 Subject: [PATCH] * key.c (get_event): Treat all negative values of gpm_fd in the same way. Add one more check that gpm is alive. --- src/ChangeLog | 5 +++++ src/key.c | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b792f3d0b..4c2eff17d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2003-12-24 Dmitry Alexeyev + + * key.c (get_event): Treat all negative values of gpm_fd in the + same way. Add one more check that gpm is alive. + 2003-12-24 Pavel Roskin * layout.c (rotate_dash): Set color before printing the dash. diff --git a/src/key.c b/src/key.c index 21d1459a4..76f0acac3 100644 --- a/src/key.c +++ b/src/key.c @@ -897,7 +897,7 @@ static int getch_with_delay (void) /* Returns EV_MOUSE if it is a mouse event */ /* Returns EV_NONE if non-blocking or interrupt set and nothing was done */ int -get_event (struct Gpm_Event * event, int redo_event, int block) +get_event (struct Gpm_Event *event, int redo_event, int block) { int c; static int flag; /* Return value from select */ @@ -938,14 +938,15 @@ get_event (struct Gpm_Event * event, int redo_event, int block) #ifdef HAVE_LIBGPM if (use_mouse_p == MOUSE_GPM) { - if (gpm_fd == -1) { + if (gpm_fd < 0) { /* Connection to gpm broken, possibly gpm has died */ mouse_enabled = 0; use_mouse_p = MOUSE_NONE; break; + } else { + FD_SET (gpm_fd, &select_set); + maxfdp = max (maxfdp, gpm_fd); } - FD_SET (gpm_fd, &select_set); - maxfdp = max (maxfdp, gpm_fd); } #endif @@ -999,7 +1000,8 @@ get_event (struct Gpm_Event * event, int redo_event, int block) if (FD_ISSET (input_fd, &select_set)) break; #ifdef HAVE_LIBGPM - if (use_mouse_p == MOUSE_GPM && FD_ISSET (gpm_fd, &select_set)) { + if (use_mouse_p == MOUSE_GPM && gpm_fd > 0 + && FD_ISSET (gpm_fd, &select_set)) { Gpm_GetEvent (&ev); Gpm_FitEvent (&ev); *event = ev; @@ -1166,7 +1168,7 @@ is_idle (void) FD_SET (input_fd, &select_set); maxfdp = input_fd; #ifdef HAVE_LIBGPM - if (use_mouse_p == MOUSE_GPM && mouse_enabled && gpm_fd != -1) { + if (use_mouse_p == MOUSE_GPM && mouse_enabled && gpm_fd > 0) { FD_SET (gpm_fd, &select_set); maxfdp = max (maxfdp, gpm_fd); }