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);
next prev parent 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.