all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Stefan Monnier <monnier@IRO.UMontreal.CA>, emacs-devel@gnu.org
Subject: Re: Defining HAVE_MOUSE on Cygwin
Date: Fri, 23 Nov 2012 17:46:44 -0500	[thread overview]
Message-ID: <50AFFCD4.1050004@cornell.edu> (raw)
In-Reply-To: <834nm65ajy.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 1214 bytes --]

On 10/7/2012 3:47 PM, Eli Zaretskii wrote:
>> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
>> Date: Sun, 07 Oct 2012 15:38:24 -0400
>> Cc: kbrown@cornell.edu, emacs-devel@gnu.org
>>
>>>>> But if that works, my fears notwithstanding, why confine this to
>>>>> Cygwin?  If we believe that emacs-nox will always run on a
>>>>> mouse-capable terminal, let's turn on HAVE_MOUSE in all Posix builds.
>>>> Actually, I can't see why we have HAVE_MOUSE at all nowadays.
>>> Perhaps someone should try compiling a -nox configuration with
>>> HAVE_MOUSE defined and without GPM, and see if it works well on a text
>>> terminal on Unix or GNU/Linux (a _real_ text terminal, not xterm).
>>
>> I'm not claiming it works.  I'm claiming that there's no good reason why
>> it shouldn't work, so if it doesn't work it's a bug.  We should remove
>> HAVE_MOUSE and fix any breakage that might ensue (but since Emacs works
>> fine under xterm with xterm-mouse-mode disabled, I don't expect too
>> much breakage at least under GNU/Linux).
>
> If no one beats me to it, I will try that in a GNU/Linux TTY session
> one of these days.

It looks like we all forgot about this.  Stefan, is the attached patch 
what you had in mind?

Ken

[-- Attachment #2: have_mouse.patch --]
[-- Type: text/plain, Size: 8631 bytes --]

=== modified file 'admin/CPP-DEFINES'
--- admin/CPP-DEFINES	2012-11-23 07:48:43 +0000
+++ admin/CPP-DEFINES	2012-11-23 22:12:46 +0000
@@ -259,7 +259,6 @@
 HAVE_MENUS
 HAVE_MKSTEMP
 HAVE_MMAP
-HAVE_MOUSE
 HAVE_MULTILINGUAL_MENU
 HAVE_NANOTIME
 HAVE_NET_IF_DL_H

=== modified file 'configure.ac'
--- configure.ac	2012-11-23 07:48:43 +0000
+++ configure.ac	2012-11-23 22:13:31 +0000
@@ -4357,7 +4357,6 @@
 ## Common for all window systems
 if test "$window_system" != "none"; then
   AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
-  AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
   WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
 fi
 

=== modified file 'msdos/sed2v2.inp'
--- msdos/sed2v2.inp	2012-11-03 19:14:22 +0000
+++ msdos/sed2v2.inp	2012-11-23 22:14:23 +0000
@@ -60,7 +60,6 @@
 /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/
 /^#undef HAVE___BUILTIN_UNWIND_INIT *$/s/^.*$/#define HAVE___BUILTIN_UNWIND_INIT 1/
 /^#undef HAVE_MENUS *$/s/^.*$/#define HAVE_MENUS 1/
-/^#undef HAVE_MOUSE *$/s/^.*$/#define HAVE_MOUSE 1/
 /^#undef DATA_START/s/^.*$/#define DATA_START (\&etext + 1)/
 /^#undef GC_SETJMP_WORKS/s/^.*$/#define GC_SETJMP_WORKS 1/
 /^#undef ORDINARY_LINK/s/^.*$/#define ORDINARY_LINK 1/

=== modified file 'nt/config.nt'
--- nt/config.nt	2012-11-23 15:42:40 +0000
+++ nt/config.nt	2012-11-23 22:14:49 +0000
@@ -687,9 +687,6 @@
 /* Define to 1 if you have a working `mmap' system call. */
 #undef HAVE_MMAP
 
-/* Define if you have mouse support. */
-#define HAVE_MOUSE 1
-
 /* Define to 1 if you have the `nanotime' function. */
 #undef HAVE_NANOTIME
 

=== modified file 'src/frame.c'
--- src/frame.c	2012-11-12 04:00:55 +0000
+++ src/frame.c	2012-11-23 22:25:05 +0000
@@ -1467,7 +1467,6 @@
   f = SELECTED_FRAME ();
   x = y = Qnil;
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   /* It's okay for the hook to refrain from storing anything.  */
   if (FRAME_TERMINAL (f)->mouse_position_hook)
     {
@@ -1487,7 +1486,6 @@
       XSETINT (x, col);
       XSETINT (y, row);
     }
-#endif
   XSETFRAME (lispy_dummy, f);
   retval = Fcons (lispy_dummy, Fcons (x, y));
   GCPRO1 (retval);
@@ -1514,7 +1512,6 @@
   f = SELECTED_FRAME ();
   x = y = Qnil;
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   /* It's okay for the hook to refrain from storing anything.  */
   if (FRAME_TERMINAL (f)->mouse_position_hook)
     {
@@ -1526,7 +1523,6 @@
 						  &time_dummy);
     }
 
-#endif
   XSETFRAME (lispy_dummy, f);
   return Fcons (lispy_dummy, Fcons (x, y));
 }
@@ -1557,7 +1553,7 @@
     /* Warping the mouse will cause enternotify and focus events.  */
     x_set_mouse_position (XFRAME (frame), XINT (x), XINT (y));
 #else
-#if defined (MSDOS) && defined (HAVE_MOUSE)
+#if defined (MSDOS)
   if (FRAME_MSDOS_P (XFRAME (frame)))
     {
       Fselect_frame (frame, Qnil);
@@ -1598,7 +1594,7 @@
     /* Warping the mouse will cause enternotify and focus events.  */
     x_set_mouse_pixel_position (XFRAME (frame), XINT (x), XINT (y));
 #else
-#if defined (MSDOS) && defined (HAVE_MOUSE)
+#if defined (MSDOS)
   if (FRAME_MSDOS_P (XFRAME (frame)))
     {
       Fselect_frame (frame, Qnil);

=== modified file 'src/keyboard.c'
--- src/keyboard.c	2012-11-17 22:12:47 +0000
+++ src/keyboard.c	2012-11-23 22:23:33 +0000
@@ -306,9 +306,7 @@
 static Lisp_Object Qselect_window;
 Lisp_Object Qhelp_echo;
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
 static Lisp_Object Qmouse_fixup_help_message;
-#endif
 
 /* Symbols to denote kinds of events.  */
 static Lisp_Object Qfunction_key;
@@ -417,12 +415,10 @@
 static Lisp_Object read_char_minibuf_menu_prompt (int, ptrdiff_t,
                                                   Lisp_Object *);
 static Lisp_Object make_lispy_event (struct input_event *);
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
 static Lisp_Object make_lispy_movement (struct frame *, Lisp_Object,
                                         enum scroll_bar_part,
                                         Lisp_Object, Lisp_Object,
 					Time);
-#endif
 static Lisp_Object modify_event_symbol (ptrdiff_t, int, Lisp_Object,
                                         Lisp_Object, const char *const *,
                                         Lisp_Object *, ptrdiff_t);
@@ -1234,8 +1230,6 @@
   user_error ("No recursive edit is in progress");
 }
 \f
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
-
 /* Restore mouse tracking enablement.  See Ftrack_mouse for the only use
    of this function.  */
 
@@ -1310,7 +1304,6 @@
   return 0;
 }
 
-#endif	/* HAVE_MOUSE || HAVE_GPM */
 \f
 /* This is the actual command reading loop,
    sans error-handling encapsulation.  */
@@ -1402,14 +1395,11 @@
 
       Vdeactivate_mark = Qnil;
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
-
       /* Don't ignore mouse movements for more than a single command
 	 loop.  (This flag is set in xdisp.c whenever the tool bar is
 	 resized, because the resize moves text up or down, and would
 	 generate false mouse drag events if we don't ignore them.)  */
       ignore_mouse_drag_p = 0;
-#endif
 
       /* If minibuffer on and echo area in use,
 	 wait a short time and redraw minibuffer.  */
@@ -2182,7 +2172,6 @@
 	return;
     }
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   if (!noninteractive && STRINGP (help))
     {
       /* The mouse-fixup-help-message Lisp function can call
@@ -2195,7 +2184,6 @@
       if (f)
       	f->mouse_moved = 1;
     }
-#endif
 
   if (STRINGP (help) || NILP (help))
     {
@@ -3390,11 +3378,9 @@
 	return 1;
     }
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   if (!(flags & READABLE_EVENTS_IGNORE_SQUEEZABLES)
       && !NILP (do_mouse_tracking) && some_mouse_moved ())
     return 1;
-#endif
   if (single_kboard)
     {
       if (current_kboard->kbd_queue_has_data)
@@ -3762,10 +3748,8 @@
 
       if (kbd_fetch_ptr != kbd_store_ptr)
 	break;
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
       if (!NILP (do_mouse_tracking) && some_mouse_moved ())
 	break;
-#endif
 
       /* If the quit flag is set, then read_char will return
 	 quit_char, so that counts as "available input."  */
@@ -3780,10 +3764,8 @@
 #endif
       if (kbd_fetch_ptr != kbd_store_ptr)
 	break;
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
       if (!NILP (do_mouse_tracking) && some_mouse_moved ())
 	break;
-#endif
       if (end_time)
 	{
 	  EMACS_TIME now = current_emacs_time ();
@@ -4040,7 +4022,6 @@
 	    }
 	}
     }
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   /* Try generating a mouse motion event.  */
   else if (!NILP (do_mouse_tracking) && some_mouse_moved ())
     {
@@ -4085,7 +4066,6 @@
       if (!NILP (x) && NILP (obj))
 	obj = make_lispy_movement (f, bar_window, part, x, y, t);
     }
-#endif	/* HAVE_MOUSE || HAVE GPM */
   else
     /* We were promised by the above while loop that there was
        something for us to read!  */
@@ -5397,7 +5377,6 @@
       return Qnil;
 #endif
 
-#ifdef HAVE_MOUSE
       /* A mouse click.  Figure out where it is, decide whether it's
          a press, click or drag, and build the appropriate structure.  */
     case MOUSE_CLICK_EVENT:
@@ -5849,7 +5828,6 @@
 			     Fcons (files,
 				    Qnil)));
       }
-#endif /* HAVE_MOUSE */
 
 #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
     || defined (HAVE_NS) || defined (USE_GTK)
@@ -5968,8 +5946,6 @@
     }
 }
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
-
 static Lisp_Object
 make_lispy_movement (FRAME_PTR frame, Lisp_Object bar_window, enum scroll_bar_part part,
 		     Lisp_Object x, Lisp_Object y, Time t)
@@ -5997,8 +5973,6 @@
     }
 }
 
-#endif /* HAVE_MOUSE || HAVE GPM */
-
 /* Construct a switch frame event.  */
 static Lisp_Object
 make_lispy_switch_frame (Lisp_Object frame)
@@ -11233,9 +11207,7 @@
   recent_keys_index = 0;
   kbd_fetch_ptr = kbd_buffer;
   kbd_store_ptr = kbd_buffer;
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   do_mouse_tracking = Qnil;
-#endif
   input_pending = 0;
   interrupt_input_blocked = 0;
   pending_signals = 0;
@@ -11386,9 +11358,7 @@
   DEFSYM (Qvertical_scroll_bar, "vertical-scroll-bar");
   DEFSYM (Qmenu_bar, "menu-bar");
 
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   DEFSYM (Qmouse_fixup_help_message, "mouse-fixup-help-message");
-#endif
 
   DEFSYM (Qabove_handle, "above-handle");
   DEFSYM (Qhandle, "handle");
@@ -11508,9 +11478,7 @@
   defsubr (&Sread_key_sequence);
   defsubr (&Sread_key_sequence_vector);
   defsubr (&Srecursive_edit);
-#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
   defsubr (&Strack_mouse);
-#endif
   defsubr (&Sinput_pending_p);
   defsubr (&Scommand_execute);
   defsubr (&Srecent_keys);


  reply	other threads:[~2012-11-23 22:46 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-07  1:56 Defining HAVE_MOUSE on Cygwin Ken Brown
2012-10-07  6:46 ` Eli Zaretskii
2012-10-07 12:18   ` Ken Brown
2012-10-07 14:16     ` Eli Zaretskii
2012-10-07 14:43       ` Stefan Monnier
2012-10-07 15:22         ` Eli Zaretskii
2012-10-07 19:38           ` Stefan Monnier
2012-10-07 19:47             ` Eli Zaretskii
2012-11-23 22:46               ` Ken Brown [this message]
2012-11-24 15:13                 ` Stefan Monnier
2012-11-24 17:22                   ` Ken Brown
2012-11-24 20:32                     ` Stefan Monnier
2012-10-07 17:33       ` Ken Brown
2012-10-07 19:46         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50AFFCD4.1050004@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.