+2007-05-20 Nick Roberts <nickrob@snap.net.nz>
+
+ * Makefile.in (LIBGPM): Allow it to be set from configure.
+ If set then link Emacs with it.
+
+ * config.in: Regenerate.
+
+ * lisp.h (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
+ New externs.
+
+ * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
+ Include gpm.h.
+ (handle_one_term_event, term_gpm) New externs.
+
+ * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
+ and allow it to be interrupted by SIGIO.
+
+ * process.c (gpm_wait_mask, max_gpm_desc): New variables.
+ (wait_reading_process_output): Wait on gpm_fd too.
+ (add_gpm_wait_descriptor, delete_gpm_wait_descriptor)): New functions.
+ (add_gpm_wait_descriptor_called_flag): New variable.
+ (delete_keyboard_wait_descriptor): Check gpm_wait_mask.
+
+ * keyboard.c [HAVE_GPM_H] (Qmouse_fixup_help_message)
+ (make_lispy_movement, tracking_off, Ftrack_mouse, some_mouse_moved)
+ (show_help_echo, readable_events, kbd_buffer_get_event, init_keyboard):
+ Extend HAVE_MOUSE ifdefs to HAVE_GPM_H.
+ (make_lispy_event): Add case GPM_CLICK_EVENT.
+ (read_avail_input): Handle mouse input.
+
+ * term.c (write_glyphs_with_face): New function.
+ [HAVE_GPM_H]: Include buffer.h, sys/fcntl.h.
+ (mouse_face_beg_row, mouse_face_beg_col, mouse_face_end_row)
+ (mouse_face_end_col, mouse_face_past_end, mouse_face_window)
+ (mouse_face_face_id, term_gpm, pos_x, pos_y)
+ (last_mouse_x, last_mouse_y): New variables.
+ (term_show_mouse_face, term_clear_mouse_face, fast_find_position)
+ (term_mouse_highlight, term_mouse_movement, term_mouse_position)
+ (term_mouse_click, handle_one_term_event, Fterm_open_connection)
+ (Fterm_close_connection): New functions.
+ (term_init): Initialise mouse_face_window.
+
2007-05-19 Chong Yidong <cyd@stupidchicken.com>
* xdisp.c (redisplay_window): If first window line is a