diff options
| author | Karoly Lorentey | 2005-05-06 21:06:31 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-05-06 21:06:31 +0000 |
| commit | c25b55138a36cf5f334070baf79ce61c1e956eed (patch) | |
| tree | 74ec7f847395839fae3acd0179f1a779c5ebc3b9 /src | |
| parent | 97c57fb2b8d271b2beba317c6213ab34190bfac7 (diff) | |
| parent | 31640842b6cd2970ced612a422fa785d2d718dc0 (diff) | |
| download | emacs-c25b55138a36cf5f334070baf79ce61c1e956eed.tar.gz emacs-c25b55138a36cf5f334070baf79ce61c1e956eed.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 68, 286-291)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-286
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-287
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-288
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-289
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-290
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-291
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-68
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-341
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 82 | ||||
| -rw-r--r-- | src/buffer.c | 16 | ||||
| -rw-r--r-- | src/buffer.h | 5 | ||||
| -rw-r--r-- | src/charset.c | 17 | ||||
| -rw-r--r-- | src/commands.h | 4 | ||||
| -rw-r--r-- | src/dispnew.c | 2 | ||||
| -rw-r--r-- | src/emacs.c | 8 | ||||
| -rw-r--r-- | src/eval.c | 4 | ||||
| -rw-r--r-- | src/keyboard.c | 48 | ||||
| -rw-r--r-- | src/mac.c | 1 | ||||
| -rw-r--r-- | src/macros.c | 52 | ||||
| -rw-r--r-- | src/macros.h | 8 | ||||
| -rw-r--r-- | src/sysselect.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 26 | ||||
| -rw-r--r-- | src/xmenu.c | 31 |
15 files changed, 201 insertions, 105 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 47d24852a66..02a81fb7f7c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,85 @@ | |||
| 1 | 2005-05-05 Luc Teirlinck <teirllm@auburn.edu> | ||
| 2 | |||
| 3 | * eval.c (Fdefvaralias): Doc fix. | ||
| 4 | |||
| 5 | * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes. | ||
| 6 | |||
| 7 | 2005-05-05 Kim F. Storm <storm@cua.dk> | ||
| 8 | |||
| 9 | * buffer.c (init_buffer_once): Set cursor_in_non_selected_windows | ||
| 10 | default value. | ||
| 11 | (syms_of_buffer): Add default-cursor-in-non-selected-windows. | ||
| 12 | Fix type of cursor-in-non-selected-windows. | ||
| 13 | |||
| 14 | 2005-05-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 15 | |||
| 16 | * mac.c: #undef init_process so not to conflict with system headers. | ||
| 17 | |||
| 18 | 2005-05-02 Richard M. Stallman <rms@gnu.org> | ||
| 19 | |||
| 20 | * buffer.c (syms_of_buffer): Define cursor-in-non-selected-windows. | ||
| 21 | |||
| 22 | * buffer.h (struct buffer): Add cursor_in_non_selected_windows slot. | ||
| 23 | |||
| 24 | * xdisp.c (Vcursor_in_non_selected_windows) | ||
| 25 | (Qcursor_in_non_selected_windows): Vars deleted. | ||
| 26 | (syms_of_xdisp): Don't initialize them. | ||
| 27 | (get_window_cursor_type): Use cursor_in_non_selected_windows | ||
| 28 | buffer slot. | ||
| 29 | |||
| 30 | 2005-05-02 Kim F. Storm <storm@cua.dk> | ||
| 31 | |||
| 32 | * macros.c (executing_kbd_macro_index): Rename from | ||
| 33 | executing_macro_index. All uses changed. | ||
| 34 | (executing_kbd_macro_iterations): Rename from | ||
| 35 | executing_macro_iterations. All uses changed. | ||
| 36 | (executing_kbd_macro): Rename from executing_macro. | ||
| 37 | All uses changed. | ||
| 38 | (syms_of_macros): Rename Lisp var executing-macro-index to | ||
| 39 | executing-kbd-macro-index. | ||
| 40 | |||
| 41 | * xdisp.c (move_it_in_display_line_to): Fix last change. | ||
| 42 | |||
| 43 | 2005-05-01 Luc Teirlinck <teirllm@auburn.edu> | ||
| 44 | |||
| 45 | * xmenu.c (Fx_popup_menu): Doc fix. | ||
| 46 | |||
| 47 | * charset.c (syms_of_charset): Delete defsubr for Schars_in_region. | ||
| 48 | |||
| 49 | 2005-05-02 Jason Rumney <jasonr@gnu.org> | ||
| 50 | |||
| 51 | * emacs.c (USAGE3, USAGE4): Keep strings below 2048 bytes. | ||
| 52 | |||
| 53 | 2005-05-02 Nozomu Ando <nand@mac.com> | ||
| 54 | |||
| 55 | * sysselect.h: Fix typo. | ||
| 56 | |||
| 57 | 2005-05-02 Nick Roberts <nickrob@snap.net.nz> | ||
| 58 | |||
| 59 | * charset.c (Fchars_in_region): Remove as obsolete. | ||
| 60 | |||
| 61 | 2005-05-01 Kim F. Storm <storm@cua.dk> | ||
| 62 | |||
| 63 | * xdisp.c (move_it_in_display_line_to): Stop if we move beyond | ||
| 64 | TO_CHARPOS. This may happen if last glyphs was an image or stretch | ||
| 65 | glyph. | ||
| 66 | |||
| 67 | 2005-05-01 Luc Teirlinck <teirllm@auburn.edu> | ||
| 68 | |||
| 69 | * dispnew.c (sit_for): Vexecuting_macro -> Vexecuting_kbd_macro. | ||
| 70 | |||
| 71 | 2005-05-01 Richard M. Stallman <rms@gnu.org> | ||
| 72 | |||
| 73 | * xmenu.c [not HAVE_X_TOOLKIT] (xmenu_show): | ||
| 74 | If user cancels the menu, quit unless FOR_CLICK. | ||
| 75 | |||
| 76 | * macros.c (Vexecuting_kbd_macro): Renamed from Vexecuting_macro. | ||
| 77 | All uses changed. | ||
| 78 | (syms_of_macros): Define only executing-kbd-macro, not executing-macro. | ||
| 79 | * keyboard.c: Change Vexecuting_macro to Vexecuting_kbd_macro. | ||
| 80 | * macros.h (Vexecuting_kbd_macro): Declare instead of Vexecuting_macro. | ||
| 81 | * commands.h (Vexecuting_kbd_macro): Likewise. | ||
| 82 | |||
| 1 | 2005-05-01 Thien-Thi Nguyen <ttn@gnu.org> | 83 | 2005-05-01 Thien-Thi Nguyen <ttn@gnu.org> |
| 2 | 84 | ||
| 3 | * sysdep.c (get_frame_size) [VMS]: Use a fresh i/o channel. | 85 | * sysdep.c (get_frame_size) [VMS]: Use a fresh i/o channel. |
diff --git a/src/buffer.c b/src/buffer.c index 1fba9136375..e9567841c8e 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Buffer manipulation primitives for GNU Emacs. | 1 | /* Buffer manipulation primitives for GNU Emacs. |
| 2 | Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, | 2 | Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99, |
| 3 | 2000, 01, 02, 03, 04, 2005 Free Software Foundation, Inc. | 3 | 2000, 01, 02, 03, 04, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -4972,6 +4972,7 @@ init_buffer_once () | |||
| 4972 | buffer_defaults.direction_reversed = Qnil; | 4972 | buffer_defaults.direction_reversed = Qnil; |
| 4973 | buffer_defaults.cursor_type = Qt; | 4973 | buffer_defaults.cursor_type = Qt; |
| 4974 | buffer_defaults.extra_line_spacing = Qnil; | 4974 | buffer_defaults.extra_line_spacing = Qnil; |
| 4975 | buffer_defaults.cursor_in_non_selected_windows = Qt; | ||
| 4975 | 4976 | ||
| 4976 | #ifdef DOS_NT | 4977 | #ifdef DOS_NT |
| 4977 | buffer_defaults.buffer_file_type = Qnil; /* TEXT */ | 4978 | buffer_defaults.buffer_file_type = Qnil; /* TEXT */ |
| @@ -5068,6 +5069,7 @@ init_buffer_once () | |||
| 5068 | XSETFASTINT (buffer_local_flags.header_line_format, idx); ++idx; | 5069 | XSETFASTINT (buffer_local_flags.header_line_format, idx); ++idx; |
| 5069 | XSETFASTINT (buffer_local_flags.cursor_type, idx); ++idx; | 5070 | XSETFASTINT (buffer_local_flags.cursor_type, idx); ++idx; |
| 5070 | XSETFASTINT (buffer_local_flags.extra_line_spacing, idx); ++idx; | 5071 | XSETFASTINT (buffer_local_flags.extra_line_spacing, idx); ++idx; |
| 5072 | XSETFASTINT (buffer_local_flags.cursor_in_non_selected_windows, idx); ++idx; | ||
| 5071 | 5073 | ||
| 5072 | /* Need more room? */ | 5074 | /* Need more room? */ |
| 5073 | if (idx >= MAX_PER_BUFFER_VARS) | 5075 | if (idx >= MAX_PER_BUFFER_VARS) |
| @@ -5259,6 +5261,11 @@ This is the same as (default-value 'cursor-type). */); | |||
| 5259 | doc: /* Default value of `line-spacing' for buffers that don't override it. | 5261 | doc: /* Default value of `line-spacing' for buffers that don't override it. |
| 5260 | This is the same as (default-value 'line-spacing). */); | 5262 | This is the same as (default-value 'line-spacing). */); |
| 5261 | 5263 | ||
| 5264 | DEFVAR_LISP_NOPRO ("default-cursor-in-non-selected-windows", | ||
| 5265 | &buffer_defaults.cursor_in_non_selected_windows, | ||
| 5266 | doc: /* Default value of `cursor-in-non-selected-windows'. | ||
| 5267 | This is the same as (default-value 'cursor-in-non-selected-windows). */); | ||
| 5268 | |||
| 5262 | DEFVAR_LISP_NOPRO ("default-abbrev-mode", | 5269 | DEFVAR_LISP_NOPRO ("default-abbrev-mode", |
| 5263 | &buffer_defaults.abbrev_mode, | 5270 | &buffer_defaults.abbrev_mode, |
| 5264 | doc: /* Default value of `abbrev-mode' for buffers that do not override it. | 5271 | doc: /* Default value of `abbrev-mode' for buffers that do not override it. |
| @@ -5938,6 +5945,11 @@ The space is measured in pixels, and put below lines on window systems. | |||
| 5938 | If value is a floating point number, it specifies the spacing relative | 5945 | If value is a floating point number, it specifies the spacing relative |
| 5939 | to the default frame line height. */); | 5946 | to the default frame line height. */); |
| 5940 | 5947 | ||
| 5948 | DEFVAR_PER_BUFFER ("cursor-in-non-selected-windows", | ||
| 5949 | ¤t_buffer->cursor_in_non_selected_windows, Qnil, | ||
| 5950 | doc: /* *Cursor type to display in non-selected windows. | ||
| 5951 | t means to use hollow box cursor. See `cursor-type' for other values. */); | ||
| 5952 | |||
| 5941 | DEFVAR_LISP ("kill-buffer-query-functions", &Vkill_buffer_query_functions, | 5953 | DEFVAR_LISP ("kill-buffer-query-functions", &Vkill_buffer_query_functions, |
| 5942 | doc: /* List of functions called with no args to query before killing a buffer. */); | 5954 | doc: /* List of functions called with no args to query before killing a buffer. */); |
| 5943 | Vkill_buffer_query_functions = Qnil; | 5955 | Vkill_buffer_query_functions = Qnil; |
diff --git a/src/buffer.h b/src/buffer.h index bcb293a2e85..08627487c66 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -761,6 +761,11 @@ struct buffer | |||
| 761 | /* An integer > 0 means put that number of pixels below text lines | 761 | /* An integer > 0 means put that number of pixels below text lines |
| 762 | in the display of this buffer. */ | 762 | in the display of this buffer. */ |
| 763 | Lisp_Object extra_line_spacing; | 763 | Lisp_Object extra_line_spacing; |
| 764 | |||
| 765 | /* *Cursor type to display in non-selected windows. | ||
| 766 | t means to use hollow box cursor. | ||
| 767 | See `cursor-type' for other values. */ | ||
| 768 | Lisp_Object cursor_in_non_selected_windows; | ||
| 764 | }; | 769 | }; |
| 765 | 770 | ||
| 766 | 771 | ||
diff --git a/src/charset.c b/src/charset.c index c03107a9c46..4a51c389d6d 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -1431,22 +1431,6 @@ The returned value is 0 for left-to-right and 1 for right-to-left. */) | |||
| 1431 | return CHARSET_TABLE_INFO (charset, CHARSET_DIRECTION_IDX); | 1431 | return CHARSET_TABLE_INFO (charset, CHARSET_DIRECTION_IDX); |
| 1432 | } | 1432 | } |
| 1433 | 1433 | ||
| 1434 | DEFUN ("chars-in-region", Fchars_in_region, Schars_in_region, 2, 2, 0, | ||
| 1435 | doc: /* Return number of characters between BEG and END. */) | ||
| 1436 | (beg, end) | ||
| 1437 | Lisp_Object beg, end; | ||
| 1438 | { | ||
| 1439 | int from, to; | ||
| 1440 | |||
| 1441 | CHECK_NUMBER_COERCE_MARKER (beg); | ||
| 1442 | CHECK_NUMBER_COERCE_MARKER (end); | ||
| 1443 | |||
| 1444 | from = min (XFASTINT (beg), XFASTINT (end)); | ||
| 1445 | to = max (XFASTINT (beg), XFASTINT (end)); | ||
| 1446 | |||
| 1447 | return make_number (to - from); | ||
| 1448 | } | ||
| 1449 | |||
| 1450 | /* Return the number of characters in the NBYTES bytes at PTR. | 1434 | /* Return the number of characters in the NBYTES bytes at PTR. |
| 1451 | This works by looking at the contents and checking for multibyte sequences. | 1435 | This works by looking at the contents and checking for multibyte sequences. |
| 1452 | However, if the current buffer has enable-multibyte-characters = nil, | 1436 | However, if the current buffer has enable-multibyte-characters = nil, |
| @@ -1855,7 +1839,6 @@ syms_of_charset () | |||
| 1855 | defsubr (&Schar_width); | 1839 | defsubr (&Schar_width); |
| 1856 | defsubr (&Sstring_width); | 1840 | defsubr (&Sstring_width); |
| 1857 | defsubr (&Schar_direction); | 1841 | defsubr (&Schar_direction); |
| 1858 | defsubr (&Schars_in_region); | ||
| 1859 | defsubr (&Sstring); | 1842 | defsubr (&Sstring); |
| 1860 | defsubr (&Ssetup_special_charsets); | 1843 | defsubr (&Ssetup_special_charsets); |
| 1861 | 1844 | ||
diff --git a/src/commands.h b/src/commands.h index f7831bc36a9..b9b1ad41933 100644 --- a/src/commands.h +++ b/src/commands.h | |||
| @@ -76,11 +76,11 @@ extern Lisp_Object last_point_position_buffer; | |||
| 76 | /* Nonzero means ^G can quit instantly */ | 76 | /* Nonzero means ^G can quit instantly */ |
| 77 | extern int immediate_quit; | 77 | extern int immediate_quit; |
| 78 | 78 | ||
| 79 | extern Lisp_Object Vexecuting_macro; | 79 | extern Lisp_Object Vexecuting_kbd_macro; |
| 80 | 80 | ||
| 81 | /* Nonzero if input is coming from the keyboard */ | 81 | /* Nonzero if input is coming from the keyboard */ |
| 82 | 82 | ||
| 83 | #define INTERACTIVE (NILP (Vexecuting_macro) && !noninteractive) | 83 | #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) |
| 84 | 84 | ||
| 85 | /* Set this nonzero to force reconsideration of mode line. */ | 85 | /* Set this nonzero to force reconsideration of mode line. */ |
| 86 | 86 | ||
diff --git a/src/dispnew.c b/src/dispnew.c index d7b5590c532..b0e9944868b 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -6383,7 +6383,7 @@ sit_for (sec, usec, reading, display, initial_display) | |||
| 6383 | { | 6383 | { |
| 6384 | swallow_events (display); | 6384 | swallow_events (display); |
| 6385 | 6385 | ||
| 6386 | if (detect_input_pending_run_timers (display) || !NILP (Vexecuting_macro)) | 6386 | if (detect_input_pending_run_timers (display) || !NILP (Vexecuting_kbd_macro)) |
| 6387 | return Qnil; | 6387 | return Qnil; |
| 6388 | 6388 | ||
| 6389 | if (initial_display) | 6389 | if (initial_display) |
diff --git a/src/emacs.c b/src/emacs.c index c084f61fd07..67cf1eb03be 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -324,16 +324,16 @@ Display options:\n\ | |||
| 324 | --xrm XRESOURCES set additional X resources\n\ | 324 | --xrm XRESOURCES set additional X resources\n\ |
| 325 | --help display this help and exit\n\ | 325 | --help display this help and exit\n\ |
| 326 | --version output version information and exit\n\ | 326 | --version output version information and exit\n\ |
| 327 | \n\ | 327 | \n" |
| 328 | |||
| 329 | #define USAGE4 "\ | ||
| 328 | You can generally also specify long option names with a single -; for\n\ | 330 | You can generally also specify long option names with a single -; for\n\ |
| 329 | example, -batch as well as --batch. You can use any unambiguous\n\ | 331 | example, -batch as well as --batch. You can use any unambiguous\n\ |
| 330 | abbreviation for a --option.\n\ | 332 | abbreviation for a --option.\n\ |
| 331 | \n\ | 333 | \n\ |
| 332 | Various environment variables and window system resources also affect\n\ | 334 | Various environment variables and window system resources also affect\n\ |
| 333 | Emacs' operation. See the main documentation.\n\ | 335 | Emacs' operation. See the main documentation.\n\ |
| 334 | \n" | 336 | \n\ |
| 335 | |||
| 336 | #define USAGE4 "\ | ||
| 337 | Report bugs to %s. First, please see the Bugs\n\ | 337 | Report bugs to %s. First, please see the Bugs\n\ |
| 338 | section of the Emacs manual or the file BUGS.\n" | 338 | section of the Emacs manual or the file BUGS.\n" |
| 339 | 339 | ||
diff --git a/src/eval.c b/src/eval.c index 6832f3197ad..8b6c1885727 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -725,7 +725,9 @@ DEFUN ("defvaralias", Fdefvaralias, Sdefvaralias, 2, 3, 0, | |||
| 725 | doc: /* Make SYMBOL a variable alias for symbol ALIASED. | 725 | doc: /* Make SYMBOL a variable alias for symbol ALIASED. |
| 726 | Setting the value of SYMBOL will subsequently set the value of ALIASED, | 726 | Setting the value of SYMBOL will subsequently set the value of ALIASED, |
| 727 | and getting the value of SYMBOL will return the value ALIASED has. | 727 | and getting the value of SYMBOL will return the value ALIASED has. |
| 728 | Third arg DOCSTRING, if non-nil, is documentation for SYMBOL. | 728 | Third arg DOCSTRING, if non-nil, is documentation for SYMBOL. If it is |
| 729 | omitted or nil, SYMBOL gets the documentation string of ALIASED, or of the | ||
| 730 | variable at the end of the chain of aliases, if ALIASED is itself an alias. | ||
| 729 | The return value is ALIASED. */) | 731 | The return value is ALIASED. */) |
| 730 | (symbol, aliased, docstring) | 732 | (symbol, aliased, docstring) |
| 731 | Lisp_Object symbol, aliased, docstring; | 733 | Lisp_Object symbol, aliased, docstring; |
diff --git a/src/keyboard.c b/src/keyboard.c index 9afcab10acd..e78b51d247b 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1162,21 +1162,21 @@ cmd_error (data) | |||
| 1162 | cancel_hourglass (); | 1162 | cancel_hourglass (); |
| 1163 | #endif | 1163 | #endif |
| 1164 | 1164 | ||
| 1165 | if (!NILP (executing_macro)) | 1165 | if (!NILP (executing_kbd_macro)) |
| 1166 | { | 1166 | { |
| 1167 | if (executing_macro_iterations == 1) | 1167 | if (executing_kbd_macro_iterations == 1) |
| 1168 | sprintf (macroerror, "After 1 kbd macro iteration: "); | 1168 | sprintf (macroerror, "After 1 kbd macro iteration: "); |
| 1169 | else | 1169 | else |
| 1170 | sprintf (macroerror, "After %d kbd macro iterations: ", | 1170 | sprintf (macroerror, "After %d kbd macro iterations: ", |
| 1171 | executing_macro_iterations); | 1171 | executing_kbd_macro_iterations); |
| 1172 | } | 1172 | } |
| 1173 | else | 1173 | else |
| 1174 | *macroerror = 0; | 1174 | *macroerror = 0; |
| 1175 | 1175 | ||
| 1176 | Vstandard_output = Qt; | 1176 | Vstandard_output = Qt; |
| 1177 | Vstandard_input = Qt; | 1177 | Vstandard_input = Qt; |
| 1178 | Vexecuting_macro = Qnil; | 1178 | Vexecuting_kbd_macro = Qnil; |
| 1179 | executing_macro = Qnil; | 1179 | executing_kbd_macro = Qnil; |
| 1180 | current_kboard->Vprefix_arg = Qnil; | 1180 | current_kboard->Vprefix_arg = Qnil; |
| 1181 | current_kboard->Vlast_prefix_arg = Qnil; | 1181 | current_kboard->Vlast_prefix_arg = Qnil; |
| 1182 | cancel_echoing (); | 1182 | cancel_echoing (); |
| @@ -1273,7 +1273,7 @@ command_loop () | |||
| 1273 | { | 1273 | { |
| 1274 | Lisp_Object val; | 1274 | Lisp_Object val; |
| 1275 | val = internal_catch (Qexit, command_loop_2, Qnil); | 1275 | val = internal_catch (Qexit, command_loop_2, Qnil); |
| 1276 | executing_macro = Qnil; | 1276 | executing_kbd_macro = Qnil; |
| 1277 | return val; | 1277 | return val; |
| 1278 | } | 1278 | } |
| 1279 | else | 1279 | else |
| @@ -1285,7 +1285,7 @@ command_loop () | |||
| 1285 | other reason. */ | 1285 | other reason. */ |
| 1286 | any_kboard_state (); | 1286 | any_kboard_state (); |
| 1287 | internal_catch (Qtop_level, command_loop_2, Qnil); | 1287 | internal_catch (Qtop_level, command_loop_2, Qnil); |
| 1288 | executing_macro = Qnil; | 1288 | executing_kbd_macro = Qnil; |
| 1289 | 1289 | ||
| 1290 | /* End of file in -batch run causes exit here. */ | 1290 | /* End of file in -batch run causes exit here. */ |
| 1291 | if (noninteractive) | 1291 | if (noninteractive) |
| @@ -1438,7 +1438,7 @@ command_loop_1 () | |||
| 1438 | if (NILP (Vunread_command_events) | 1438 | if (NILP (Vunread_command_events) |
| 1439 | && NILP (Vunread_input_method_events) | 1439 | && NILP (Vunread_input_method_events) |
| 1440 | && NILP (Vunread_post_input_method_events) | 1440 | && NILP (Vunread_post_input_method_events) |
| 1441 | && NILP (Vexecuting_macro) | 1441 | && NILP (Vexecuting_kbd_macro) |
| 1442 | && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1))) | 1442 | && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1))) |
| 1443 | safe_run_hooks (Qpost_command_idle_hook); | 1443 | safe_run_hooks (Qpost_command_idle_hook); |
| 1444 | } | 1444 | } |
| @@ -1567,11 +1567,11 @@ command_loop_1 () | |||
| 1567 | } | 1567 | } |
| 1568 | 1568 | ||
| 1569 | cmd = read_key_sequence_cmd; | 1569 | cmd = read_key_sequence_cmd; |
| 1570 | if (!NILP (Vexecuting_macro)) | 1570 | if (!NILP (Vexecuting_kbd_macro)) |
| 1571 | { | 1571 | { |
| 1572 | if (!NILP (Vquit_flag)) | 1572 | if (!NILP (Vquit_flag)) |
| 1573 | { | 1573 | { |
| 1574 | Vexecuting_macro = Qt; | 1574 | Vexecuting_kbd_macro = Qt; |
| 1575 | QUIT; /* Make some noise. */ | 1575 | QUIT; /* Make some noise. */ |
| 1576 | /* Will return since macro now empty. */ | 1576 | /* Will return since macro now empty. */ |
| 1577 | } | 1577 | } |
| @@ -1670,7 +1670,7 @@ command_loop_1 () | |||
| 1670 | && EQ (current_buffer->selective_display, Qnil) | 1670 | && EQ (current_buffer->selective_display, Qnil) |
| 1671 | && !detect_input_pending () | 1671 | && !detect_input_pending () |
| 1672 | && NILP (XWINDOW (selected_window)->column_number_displayed) | 1672 | && NILP (XWINDOW (selected_window)->column_number_displayed) |
| 1673 | && NILP (Vexecuting_macro)) | 1673 | && NILP (Vexecuting_kbd_macro)) |
| 1674 | direct_output_forward_char (1); | 1674 | direct_output_forward_char (1); |
| 1675 | goto directly_done; | 1675 | goto directly_done; |
| 1676 | } | 1676 | } |
| @@ -1705,7 +1705,7 @@ command_loop_1 () | |||
| 1705 | && EQ (current_buffer->selective_display, Qnil) | 1705 | && EQ (current_buffer->selective_display, Qnil) |
| 1706 | && !detect_input_pending () | 1706 | && !detect_input_pending () |
| 1707 | && NILP (XWINDOW (selected_window)->column_number_displayed) | 1707 | && NILP (XWINDOW (selected_window)->column_number_displayed) |
| 1708 | && NILP (Vexecuting_macro)) | 1708 | && NILP (Vexecuting_kbd_macro)) |
| 1709 | direct_output_forward_char (-1); | 1709 | direct_output_forward_char (-1); |
| 1710 | goto directly_done; | 1710 | goto directly_done; |
| 1711 | } | 1711 | } |
| @@ -1718,7 +1718,7 @@ command_loop_1 () | |||
| 1718 | = translate_char (Vtranslation_table_for_input, | 1718 | = translate_char (Vtranslation_table_for_input, |
| 1719 | XFASTINT (last_command_char), 0, 0, 0); | 1719 | XFASTINT (last_command_char), 0, 0, 0); |
| 1720 | int value; | 1720 | int value; |
| 1721 | if (NILP (Vexecuting_macro) | 1721 | if (NILP (Vexecuting_kbd_macro) |
| 1722 | && !EQ (minibuf_window, selected_window)) | 1722 | && !EQ (minibuf_window, selected_window)) |
| 1723 | { | 1723 | { |
| 1724 | if (!nonundocount || nonundocount >= 20) | 1724 | if (!nonundocount || nonundocount >= 20) |
| @@ -1740,7 +1740,7 @@ command_loop_1 () | |||
| 1740 | || !EQ (current_buffer->selective_display, Qnil) | 1740 | || !EQ (current_buffer->selective_display, Qnil) |
| 1741 | || detect_input_pending () | 1741 | || detect_input_pending () |
| 1742 | || !NILP (XWINDOW (selected_window)->column_number_displayed) | 1742 | || !NILP (XWINDOW (selected_window)->column_number_displayed) |
| 1743 | || !NILP (Vexecuting_macro)); | 1743 | || !NILP (Vexecuting_kbd_macro)); |
| 1744 | 1744 | ||
| 1745 | value = internal_self_insert (c, 0); | 1745 | value = internal_self_insert (c, 0); |
| 1746 | 1746 | ||
| @@ -1768,7 +1768,7 @@ command_loop_1 () | |||
| 1768 | int scount = SPECPDL_INDEX (); | 1768 | int scount = SPECPDL_INDEX (); |
| 1769 | 1769 | ||
| 1770 | if (display_hourglass_p | 1770 | if (display_hourglass_p |
| 1771 | && NILP (Vexecuting_macro)) | 1771 | && NILP (Vexecuting_kbd_macro)) |
| 1772 | { | 1772 | { |
| 1773 | record_unwind_protect (cancel_hourglass_unwind, Qnil); | 1773 | record_unwind_protect (cancel_hourglass_unwind, Qnil); |
| 1774 | start_hourglass (); | 1774 | start_hourglass (); |
| @@ -1786,7 +1786,7 @@ command_loop_1 () | |||
| 1786 | hourglass cursor anyway. | 1786 | hourglass cursor anyway. |
| 1787 | But don't cancel the hourglass within a macro | 1787 | But don't cancel the hourglass within a macro |
| 1788 | just because a command in the macro finishes. */ | 1788 | just because a command in the macro finishes. */ |
| 1789 | if (NILP (Vexecuting_macro)) | 1789 | if (NILP (Vexecuting_kbd_macro)) |
| 1790 | unbind_to (scount, Qnil); | 1790 | unbind_to (scount, Qnil); |
| 1791 | #endif | 1791 | #endif |
| 1792 | } | 1792 | } |
| @@ -1812,7 +1812,7 @@ command_loop_1 () | |||
| 1812 | if (NILP (Vunread_command_events) | 1812 | if (NILP (Vunread_command_events) |
| 1813 | && NILP (Vunread_input_method_events) | 1813 | && NILP (Vunread_input_method_events) |
| 1814 | && NILP (Vunread_post_input_method_events) | 1814 | && NILP (Vunread_post_input_method_events) |
| 1815 | && NILP (Vexecuting_macro) | 1815 | && NILP (Vexecuting_kbd_macro) |
| 1816 | && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1))) | 1816 | && !NILP (sit_for (0, post_command_idle_delay, 0, 1, 1))) |
| 1817 | safe_run_hooks (Qpost_command_idle_hook); | 1817 | safe_run_hooks (Qpost_command_idle_hook); |
| 1818 | } | 1818 | } |
| @@ -2493,7 +2493,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu) | |||
| 2493 | 2493 | ||
| 2494 | this_command_key_count_reset = 0; | 2494 | this_command_key_count_reset = 0; |
| 2495 | 2495 | ||
| 2496 | if (!NILP (Vexecuting_macro)) | 2496 | if (!NILP (Vexecuting_kbd_macro)) |
| 2497 | { | 2497 | { |
| 2498 | /* We set this to Qmacro; since that's not a frame, nobody will | 2498 | /* We set this to Qmacro; since that's not a frame, nobody will |
| 2499 | try to switch frames on us, and the selected window will | 2499 | try to switch frames on us, and the selected window will |
| @@ -2510,19 +2510,19 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu) | |||
| 2510 | /* Exit the macro if we are at the end. | 2510 | /* Exit the macro if we are at the end. |
| 2511 | Also, some things replace the macro with t | 2511 | Also, some things replace the macro with t |
| 2512 | to force an early exit. */ | 2512 | to force an early exit. */ |
| 2513 | if (EQ (Vexecuting_macro, Qt) | 2513 | if (EQ (Vexecuting_kbd_macro, Qt) |
| 2514 | || executing_macro_index >= XFASTINT (Flength (Vexecuting_macro))) | 2514 | || executing_kbd_macro_index >= XFASTINT (Flength (Vexecuting_kbd_macro))) |
| 2515 | { | 2515 | { |
| 2516 | XSETINT (c, -1); | 2516 | XSETINT (c, -1); |
| 2517 | goto exit; | 2517 | goto exit; |
| 2518 | } | 2518 | } |
| 2519 | 2519 | ||
| 2520 | c = Faref (Vexecuting_macro, make_number (executing_macro_index)); | 2520 | c = Faref (Vexecuting_kbd_macro, make_number (executing_kbd_macro_index)); |
| 2521 | if (STRINGP (Vexecuting_macro) | 2521 | if (STRINGP (Vexecuting_kbd_macro) |
| 2522 | && (XINT (c) & 0x80) && (XUINT (c) <= 0xff)) | 2522 | && (XINT (c) & 0x80) && (XUINT (c) <= 0xff)) |
| 2523 | XSETFASTINT (c, CHAR_META | (XINT (c) & ~0x80)); | 2523 | XSETFASTINT (c, CHAR_META | (XINT (c) & ~0x80)); |
| 2524 | 2524 | ||
| 2525 | executing_macro_index++; | 2525 | executing_kbd_macro_index++; |
| 2526 | 2526 | ||
| 2527 | goto from_macro; | 2527 | goto from_macro; |
| 2528 | } | 2528 | } |
| @@ -9886,7 +9886,7 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_ | |||
| 9886 | 9886 | ||
| 9887 | /* If enabled, show which key runs this command. */ | 9887 | /* If enabled, show which key runs this command. */ |
| 9888 | if (!NILP (Vsuggest_key_bindings) | 9888 | if (!NILP (Vsuggest_key_bindings) |
| 9889 | && NILP (Vexecuting_macro) | 9889 | && NILP (Vexecuting_kbd_macro) |
| 9890 | && SYMBOLP (function)) | 9890 | && SYMBOLP (function)) |
| 9891 | bindings = Fwhere_is_internal (function, Voverriding_local_map, | 9891 | bindings = Fwhere_is_internal (function, Voverriding_local_map, |
| 9892 | Qt, Qnil, Qnil); | 9892 | Qt, Qnil, Qnil); |
| @@ -27,6 +27,7 @@ Boston, MA 02111-1307, USA. */ | |||
| 27 | 27 | ||
| 28 | #include "lisp.h" | 28 | #include "lisp.h" |
| 29 | #include "process.h" | 29 | #include "process.h" |
| 30 | #undef init_process | ||
| 30 | #include "systime.h" | 31 | #include "systime.h" |
| 31 | #include "sysselect.h" | 32 | #include "sysselect.h" |
| 32 | #include "blockinput.h" | 33 | #include "blockinput.h" |
diff --git a/src/macros.c b/src/macros.c index 09ae87b0a59..8b17c9fb261 100644 --- a/src/macros.c +++ b/src/macros.c | |||
| @@ -31,25 +31,25 @@ Lisp_Object Qexecute_kbd_macro, Qkbd_macro_termination_hook; | |||
| 31 | 31 | ||
| 32 | /* Kbd macro currently being executed (a string or vector). */ | 32 | /* Kbd macro currently being executed (a string or vector). */ |
| 33 | 33 | ||
| 34 | Lisp_Object Vexecuting_macro; | 34 | Lisp_Object Vexecuting_kbd_macro; |
| 35 | 35 | ||
| 36 | /* Index of next character to fetch from that macro. */ | 36 | /* Index of next character to fetch from that macro. */ |
| 37 | 37 | ||
| 38 | EMACS_INT executing_macro_index; | 38 | EMACS_INT executing_kbd_macro_index; |
| 39 | 39 | ||
| 40 | /* Number of successful iterations so far | 40 | /* Number of successful iterations so far |
| 41 | for innermost keyboard macro. | 41 | for innermost keyboard macro. |
| 42 | This is not bound at each level, | 42 | This is not bound at each level, |
| 43 | so after an error, it describes the innermost interrupted macro. */ | 43 | so after an error, it describes the innermost interrupted macro. */ |
| 44 | 44 | ||
| 45 | int executing_macro_iterations; | 45 | int executing_kbd_macro_iterations; |
| 46 | 46 | ||
| 47 | /* This is the macro that was executing. | 47 | /* This is the macro that was executing. |
| 48 | This is not bound at each level, | 48 | This is not bound at each level, |
| 49 | so after an error, it describes the innermost interrupted macro. | 49 | so after an error, it describes the innermost interrupted macro. |
| 50 | We use it only as a kind of flag, so no need to protect it. */ | 50 | We use it only as a kind of flag, so no need to protect it. */ |
| 51 | 51 | ||
| 52 | Lisp_Object executing_macro; | 52 | Lisp_Object executing_kbd_macro; |
| 53 | 53 | ||
| 54 | extern Lisp_Object real_this_command; | 54 | extern Lisp_Object real_this_command; |
| 55 | 55 | ||
| @@ -114,7 +114,7 @@ macro before appending to it. */) | |||
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | /* Must convert meta modifier when copying string to vector. */ | 116 | /* Must convert meta modifier when copying string to vector. */ |
| 117 | cvt = STRINGP (current_kboard->Vlast_kbd_macro); | 117 | cvt = STRINGP (current_kboard->Vlast_kbd_macro); |
| 118 | for (i = 0; i < len; i++) | 118 | for (i = 0; i < len; i++) |
| 119 | { | 119 | { |
| 120 | Lisp_Object c; | 120 | Lisp_Object c; |
| @@ -285,17 +285,17 @@ each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) | |||
| 285 | return Qnil; | 285 | return Qnil; |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | /* Restore Vexecuting_macro and executing_macro_index - called when | 288 | /* Restore Vexecuting_kbd_macro and executing_kbd_macro_index. |
| 289 | the unwind-protect in Fexecute_kbd_macro gets invoked. */ | 289 | Called when the unwind-protect in Fexecute_kbd_macro gets invoked. */ |
| 290 | 290 | ||
| 291 | static Lisp_Object | 291 | static Lisp_Object |
| 292 | pop_kbd_macro (info) | 292 | pop_kbd_macro (info) |
| 293 | Lisp_Object info; | 293 | Lisp_Object info; |
| 294 | { | 294 | { |
| 295 | Lisp_Object tem; | 295 | Lisp_Object tem; |
| 296 | Vexecuting_macro = XCAR (info); | 296 | Vexecuting_kbd_macro = XCAR (info); |
| 297 | tem = XCDR (info); | 297 | tem = XCDR (info); |
| 298 | executing_macro_index = XINT (XCAR (tem)); | 298 | executing_kbd_macro_index = XINT (XCAR (tem)); |
| 299 | real_this_command = XCDR (tem); | 299 | real_this_command = XCDR (tem); |
| 300 | Frun_hooks (1, &Qkbd_macro_termination_hook); | 300 | Frun_hooks (1, &Qkbd_macro_termination_hook); |
| 301 | return Qnil; | 301 | return Qnil; |
| @@ -318,7 +318,7 @@ each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) | |||
| 318 | struct gcpro gcpro1, gcpro2; | 318 | struct gcpro gcpro1, gcpro2; |
| 319 | int success_count = 0; | 319 | int success_count = 0; |
| 320 | 320 | ||
| 321 | executing_macro_iterations = 0; | 321 | executing_kbd_macro_iterations = 0; |
| 322 | 322 | ||
| 323 | if (!NILP (count)) | 323 | if (!NILP (count)) |
| 324 | { | 324 | { |
| @@ -330,17 +330,17 @@ each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) | |||
| 330 | if (!STRINGP (final) && !VECTORP (final)) | 330 | if (!STRINGP (final) && !VECTORP (final)) |
| 331 | error ("Keyboard macros must be strings or vectors"); | 331 | error ("Keyboard macros must be strings or vectors"); |
| 332 | 332 | ||
| 333 | tem = Fcons (Vexecuting_macro, | 333 | tem = Fcons (Vexecuting_kbd_macro, |
| 334 | Fcons (make_number (executing_macro_index), | 334 | Fcons (make_number (executing_kbd_macro_index), |
| 335 | real_this_command)); | 335 | real_this_command)); |
| 336 | record_unwind_protect (pop_kbd_macro, tem); | 336 | record_unwind_protect (pop_kbd_macro, tem); |
| 337 | 337 | ||
| 338 | GCPRO2 (final, loopfunc); | 338 | GCPRO2 (final, loopfunc); |
| 339 | do | 339 | do |
| 340 | { | 340 | { |
| 341 | Vexecuting_macro = final; | 341 | Vexecuting_kbd_macro = final; |
| 342 | executing_macro = final; | 342 | executing_kbd_macro = final; |
| 343 | executing_macro_index = 0; | 343 | executing_kbd_macro_index = 0; |
| 344 | 344 | ||
| 345 | current_kboard->Vprefix_arg = Qnil; | 345 | current_kboard->Vprefix_arg = Qnil; |
| 346 | 346 | ||
| @@ -354,16 +354,16 @@ each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) | |||
| 354 | 354 | ||
| 355 | command_loop_1 (); | 355 | command_loop_1 (); |
| 356 | 356 | ||
| 357 | executing_macro_iterations = ++success_count; | 357 | executing_kbd_macro_iterations = ++success_count; |
| 358 | 358 | ||
| 359 | QUIT; | 359 | QUIT; |
| 360 | } | 360 | } |
| 361 | while (--repeat | 361 | while (--repeat |
| 362 | && (STRINGP (Vexecuting_macro) || VECTORP (Vexecuting_macro))); | 362 | && (STRINGP (Vexecuting_kbd_macro) || VECTORP (Vexecuting_kbd_macro))); |
| 363 | 363 | ||
| 364 | executing_macro = Qnil; | 364 | executing_kbd_macro = Qnil; |
| 365 | 365 | ||
| 366 | real_this_command = Vexecuting_macro; | 366 | real_this_command = Vexecuting_kbd_macro; |
| 367 | 367 | ||
| 368 | UNGCPRO; | 368 | UNGCPRO; |
| 369 | return unbind_to (pdlcount, Qnil); | 369 | return unbind_to (pdlcount, Qnil); |
| @@ -372,8 +372,8 @@ each iteration of the macro. Iteration stops if LOOPFUNC returns nil. */) | |||
| 372 | void | 372 | void |
| 373 | init_macros () | 373 | init_macros () |
| 374 | { | 374 | { |
| 375 | Vexecuting_macro = Qnil; | 375 | Vexecuting_kbd_macro = Qnil; |
| 376 | executing_macro = Qnil; | 376 | executing_kbd_macro = Qnil; |
| 377 | } | 377 | } |
| 378 | 378 | ||
| 379 | void | 379 | void |
| @@ -396,15 +396,13 @@ syms_of_macros () | |||
| 396 | The value is the symbol `append' while appending to the definition of | 396 | The value is the symbol `append' while appending to the definition of |
| 397 | an existing macro. */); | 397 | an existing macro. */); |
| 398 | 398 | ||
| 399 | DEFVAR_LISP ("executing-macro", &Vexecuting_macro, | 399 | DEFVAR_LISP ("executing-kbd-macro", &Vexecuting_kbd_macro, |
| 400 | doc: /* Currently executing keyboard macro (string or vector); nil if none executing. */); | 400 | doc: /* Currently executing keyboard macro (string or vector). |
| 401 | This is nil when not executing a keyboard macro. */); | ||
| 401 | 402 | ||
| 402 | DEFVAR_INT ("executing-macro-index", &executing_macro_index, | 403 | DEFVAR_INT ("executing-kbd-macro-index", &executing_kbd_macro_index, |
| 403 | doc: /* Index in currently executing keyboard macro; undefined if none executing. */); | 404 | doc: /* Index in currently executing keyboard macro; undefined if none executing. */); |
| 404 | 405 | ||
| 405 | DEFVAR_LISP_NOPRO ("executing-kbd-macro", &Vexecuting_macro, | ||
| 406 | doc: /* Currently executing keyboard macro (string or vector); nil if none executing. */); | ||
| 407 | |||
| 408 | DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro, | 406 | DEFVAR_KBOARD ("last-kbd-macro", Vlast_kbd_macro, |
| 409 | doc: /* Last kbd macro defined, as a string or vector; nil if none defined. */); | 407 | doc: /* Last kbd macro defined, as a string or vector; nil if none defined. */); |
| 410 | } | 408 | } |
diff --git a/src/macros.h b/src/macros.h index 41a32efe2e0..bf33ea8325b 100644 --- a/src/macros.h +++ b/src/macros.h | |||
| @@ -21,24 +21,24 @@ Boston, MA 02111-1307, USA. */ | |||
| 21 | 21 | ||
| 22 | /* Kbd macro currently being executed (a string or vector). */ | 22 | /* Kbd macro currently being executed (a string or vector). */ |
| 23 | 23 | ||
| 24 | extern Lisp_Object Vexecuting_macro; | 24 | extern Lisp_Object Vexecuting_kbd_macro; |
| 25 | 25 | ||
| 26 | /* Index of next character to fetch from that macro. */ | 26 | /* Index of next character to fetch from that macro. */ |
| 27 | 27 | ||
| 28 | extern EMACS_INT executing_macro_index; | 28 | extern EMACS_INT executing_kbd_macro_index; |
| 29 | 29 | ||
| 30 | /* Number of successful iterations so far | 30 | /* Number of successful iterations so far |
| 31 | for innermost keyboard macro. | 31 | for innermost keyboard macro. |
| 32 | This is not bound at each level, | 32 | This is not bound at each level, |
| 33 | so after an error, it describes the innermost interrupted macro. */ | 33 | so after an error, it describes the innermost interrupted macro. */ |
| 34 | 34 | ||
| 35 | extern int executing_macro_iterations; | 35 | extern int executing_kbd_macro_iterations; |
| 36 | 36 | ||
| 37 | /* This is the macro that was executing. | 37 | /* This is the macro that was executing. |
| 38 | This is not bound at each level, | 38 | This is not bound at each level, |
| 39 | so after an error, it describes the innermost interrupted macro. */ | 39 | so after an error, it describes the innermost interrupted macro. */ |
| 40 | 40 | ||
| 41 | extern Lisp_Object executing_macro; | 41 | extern Lisp_Object executing_kbd_macro; |
| 42 | 42 | ||
| 43 | /* Finish defining the current keyboard macro. */ | 43 | /* Finish defining the current keyboard macro. */ |
| 44 | 44 | ||
diff --git a/src/sysselect.h b/src/sysselect.h index 5aa9eb4aee7..4c52bba677a 100644 --- a/src/sysselect.h +++ b/src/sysselect.h | |||
| @@ -18,7 +18,7 @@ along with GNU Emacs; see the file COPYING. If not, write to | |||
| 18 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 18 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
| 19 | Boston, MA 02111-1307, USA. */ | 19 | Boston, MA 02111-1307, USA. */ |
| 20 | 20 | ||
| 21 | #ifdef HAVE_SYS_SELECT | 21 | #ifdef HAVE_SYS_SELECT_H |
| 22 | #include <sys/select.h> | 22 | #include <sys/select.h> |
| 23 | #endif | 23 | #endif |
| 24 | 24 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 288b6356b49..92e85dd8786 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -612,12 +612,6 @@ Lisp_Object Qmessage_truncate_lines; | |||
| 612 | 612 | ||
| 613 | static int message_cleared_p; | 613 | static int message_cleared_p; |
| 614 | 614 | ||
| 615 | /* Non-zero means we want a hollow cursor in windows that are not | ||
| 616 | selected. Zero means there's no cursor in such windows. */ | ||
| 617 | |||
| 618 | Lisp_Object Vcursor_in_non_selected_windows; | ||
| 619 | Lisp_Object Qcursor_in_non_selected_windows; | ||
| 620 | |||
| 621 | /* How to blink the default frame cursor off. */ | 615 | /* How to blink the default frame cursor off. */ |
| 622 | Lisp_Object Vblink_cursor_alist; | 616 | Lisp_Object Vblink_cursor_alist; |
| 623 | 617 | ||
| @@ -5864,6 +5858,16 @@ move_it_in_display_line_to (it, to_charpos, to_x, op) | |||
| 5864 | { | 5858 | { |
| 5865 | int x, i, ascent = 0, descent = 0; | 5859 | int x, i, ascent = 0, descent = 0; |
| 5866 | 5860 | ||
| 5861 | /* Stop if we move beyond TO_CHARPOS (after an image or stretch glyph). */ | ||
| 5862 | if ((op & MOVE_TO_POS) != 0 | ||
| 5863 | && BUFFERP (it->object) | ||
| 5864 | && it->method == GET_FROM_BUFFER | ||
| 5865 | && IT_CHARPOS (*it) > to_charpos) | ||
| 5866 | { | ||
| 5867 | result = MOVE_POS_MATCH_OR_ZV; | ||
| 5868 | break; | ||
| 5869 | } | ||
| 5870 | |||
| 5867 | /* Stop when ZV reached. | 5871 | /* Stop when ZV reached. |
| 5868 | We used to stop here when TO_CHARPOS reached as well, but that is | 5872 | We used to stop here when TO_CHARPOS reached as well, but that is |
| 5869 | too soon if this glyph does not fit on this line. So we handle it | 5873 | too soon if this glyph does not fit on this line. So we handle it |
| @@ -20131,7 +20135,7 @@ get_window_cursor_type (w, glyph, width, active_cursor) | |||
| 20131 | /* Use cursor-in-non-selected-windows for non-selected window or frame. */ | 20135 | /* Use cursor-in-non-selected-windows for non-selected window or frame. */ |
| 20132 | if (non_selected) | 20136 | if (non_selected) |
| 20133 | { | 20137 | { |
| 20134 | alt_cursor = Fbuffer_local_value (Qcursor_in_non_selected_windows, w->buffer); | 20138 | alt_cursor = XBUFFER (w->buffer)->cursor_in_non_selected_windows; |
| 20135 | return get_specified_cursor_type (alt_cursor, width); | 20139 | return get_specified_cursor_type (alt_cursor, width); |
| 20136 | } | 20140 | } |
| 20137 | 20141 | ||
| @@ -22496,8 +22500,6 @@ syms_of_xdisp () | |||
| 22496 | staticpro (&Qpoly); | 22500 | staticpro (&Qpoly); |
| 22497 | Qmessage_truncate_lines = intern ("message-truncate-lines"); | 22501 | Qmessage_truncate_lines = intern ("message-truncate-lines"); |
| 22498 | staticpro (&Qmessage_truncate_lines); | 22502 | staticpro (&Qmessage_truncate_lines); |
| 22499 | Qcursor_in_non_selected_windows = intern ("cursor-in-non-selected-windows"); | ||
| 22500 | staticpro (&Qcursor_in_non_selected_windows); | ||
| 22501 | Qgrow_only = intern ("grow-only"); | 22503 | Qgrow_only = intern ("grow-only"); |
| 22502 | staticpro (&Qgrow_only); | 22504 | staticpro (&Qgrow_only); |
| 22503 | Qinhibit_menubar_update = intern ("inhibit-menubar-update"); | 22505 | Qinhibit_menubar_update = intern ("inhibit-menubar-update"); |
| @@ -22791,12 +22793,6 @@ only, until their display becomes empty, at which point the windows | |||
| 22791 | go back to their normal size. */); | 22793 | go back to their normal size. */); |
| 22792 | Vresize_mini_windows = Qgrow_only; | 22794 | Vresize_mini_windows = Qgrow_only; |
| 22793 | 22795 | ||
| 22794 | DEFVAR_LISP ("cursor-in-non-selected-windows", | ||
| 22795 | &Vcursor_in_non_selected_windows, | ||
| 22796 | doc: /* *Cursor type to display in non-selected windows. | ||
| 22797 | t means to use hollow box cursor. See `cursor-type' for other values. */); | ||
| 22798 | Vcursor_in_non_selected_windows = Qt; | ||
| 22799 | |||
| 22800 | DEFVAR_LISP ("blink-cursor-alist", &Vblink_cursor_alist, | 22796 | DEFVAR_LISP ("blink-cursor-alist", &Vblink_cursor_alist, |
| 22801 | doc: /* Alist specifying how to blink the cursor off. | 22797 | doc: /* Alist specifying how to blink the cursor off. |
| 22802 | Each element has the form (ON-STATE . OFF-STATE). Whenever the | 22798 | Each element has the form (ON-STATE . OFF-STATE). Whenever the |
diff --git a/src/xmenu.c b/src/xmenu.c index f32074c2f6a..1a2386fe916 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -737,7 +737,7 @@ DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0, | |||
| 737 | POSITION is a position specification. This is either a mouse button event | 737 | POSITION is a position specification. This is either a mouse button event |
| 738 | or a list ((XOFFSET YOFFSET) WINDOW) | 738 | or a list ((XOFFSET YOFFSET) WINDOW) |
| 739 | where XOFFSET and YOFFSET are positions in pixels from the top left | 739 | where XOFFSET and YOFFSET are positions in pixels from the top left |
| 740 | corner of WINDOW's frame. (WINDOW may be a frame object instead of a window.) | 740 | corner of WINDOW. (WINDOW may be a window or a frame object.) |
| 741 | This controls the position of the top left of the menu as a whole. | 741 | This controls the position of the top left of the menu as a whole. |
| 742 | If POSITION is t, it means to use the current mouse position. | 742 | If POSITION is t, it means to use the current mouse position. |
| 743 | 743 | ||
| @@ -752,8 +752,11 @@ Otherwise, REAL-DEFINITION should be a valid key binding definition. | |||
| 752 | 752 | ||
| 753 | You can also use a list of keymaps as MENU. | 753 | You can also use a list of keymaps as MENU. |
| 754 | Then each keymap makes a separate pane. | 754 | Then each keymap makes a separate pane. |
| 755 | When MENU is a keymap or a list of keymaps, the return value | 755 | |
| 756 | is a list of events. | 756 | When MENU is a keymap or a list of keymaps, the return value is the |
| 757 | list of events corresponding to the user's choice. Note that | ||
| 758 | `x-popup-menu' does not actually execute the command bound to that | ||
| 759 | sequence of events. | ||
| 757 | 760 | ||
| 758 | Alternatively, you can specify a menu of multiple panes | 761 | Alternatively, you can specify a menu of multiple panes |
| 759 | with a list of the form (TITLE PANE1 PANE2...), | 762 | with a list of the form (TITLE PANE1 PANE2...), |
| @@ -764,7 +767,14 @@ in the menu. | |||
| 764 | With this form of menu, the return value is VALUE from the chosen item. | 767 | With this form of menu, the return value is VALUE from the chosen item. |
| 765 | 768 | ||
| 766 | If POSITION is nil, don't display the menu at all, just precalculate the | 769 | If POSITION is nil, don't display the menu at all, just precalculate the |
| 767 | cached information about equivalent key sequences. */) | 770 | cached information about equivalent key sequences. |
| 771 | |||
| 772 | If the user gets rid of the menu without making a valid choice, for | ||
| 773 | instance by clicking the mouse away from a valid choice or by typing | ||
| 774 | keyboard input, then this normally results in a quit and | ||
| 775 | `x-popup-menu' does not return. But if POSITION is a mouse button | ||
| 776 | event (indicating that the user invoked the menu with the mouse) then | ||
| 777 | no quit occurs and `x-popup-menu' returns nil. */) | ||
| 768 | (position, menu) | 778 | (position, menu) |
| 769 | Lisp_Object position, menu; | 779 | Lisp_Object position, menu; |
| 770 | { | 780 | { |
| @@ -1002,7 +1012,11 @@ The return value is VALUE from the chosen item. | |||
| 1002 | An ITEM may also be just a string--that makes a nonselectable item. | 1012 | An ITEM may also be just a string--that makes a nonselectable item. |
| 1003 | An ITEM may also be nil--that means to put all preceding items | 1013 | An ITEM may also be nil--that means to put all preceding items |
| 1004 | on the left of the dialog box and all following items on the right. | 1014 | on the left of the dialog box and all following items on the right. |
| 1005 | \(By default, approximately half appear on each side.) */) | 1015 | \(By default, approximately half appear on each side.) |
| 1016 | |||
| 1017 | If the user gets rid of the dialog box without making a valid choice, | ||
| 1018 | for instance using the window manager, then this produces a quit and | ||
| 1019 | `x-popup-dialog' does not return. */) | ||
| 1006 | (position, contents) | 1020 | (position, contents) |
| 1007 | Lisp_Object position, contents; | 1021 | Lisp_Object position, contents; |
| 1008 | { | 1022 | { |
| @@ -2889,6 +2903,9 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) | |||
| 2889 | } | 2903 | } |
| 2890 | } | 2904 | } |
| 2891 | } | 2905 | } |
| 2906 | else if (!for_click) | ||
| 2907 | /* Make "Cancel" equivalent to C-g. */ | ||
| 2908 | Fsignal (Qquit, Qnil); | ||
| 2892 | 2909 | ||
| 2893 | return Qnil; | 2910 | return Qnil; |
| 2894 | } | 2911 | } |
| @@ -3519,8 +3536,8 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) | |||
| 3519 | entry = Qnil; | 3536 | entry = Qnil; |
| 3520 | break; | 3537 | break; |
| 3521 | case XM_NO_SELECT: | 3538 | case XM_NO_SELECT: |
| 3522 | /* Make "Cancel" equivalent to C-g unless this menu was popped up by | 3539 | /* Make "Cancel" equivalent to C-g unless FOR_CLICK (which means |
| 3523 | a mouse press. */ | 3540 | the menu was invoked with a mouse event as POSITION). */ |
| 3524 | if (! for_click) | 3541 | if (! for_click) |
| 3525 | Fsignal (Qquit, Qnil); | 3542 | Fsignal (Qquit, Qnil); |
| 3526 | entry = Qnil; | 3543 | entry = Qnil; |