aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFabián Ezequiel Gallina2015-01-28 00:59:34 -0300
committerFabián Ezequiel Gallina2015-01-28 00:59:34 -0300
commitd7a89815b6d69c3b1793d34bcad8bf0aa21d48c8 (patch)
tree6ac62b66bd5386355c96551da34416036cf279b7 /src
parent3a8b7013042adae3c27327a75662fd8e884d4896 (diff)
parentd279e6680842b872ae3aab1fb429b1879db50f7f (diff)
downloademacs-d7a89815b6d69c3b1793d34bcad8bf0aa21d48c8.tar.gz
emacs-d7a89815b6d69c3b1793d34bcad8bf0aa21d48c8.zip
Merge from origin/emacs-24
d279e66 Fix assertion violations in try_window_id (Bug#19511) 031eadc Fix dired quoting bug with "Hit`N`Hide" 5981b4b More doc fixes for bug#19502 -- make documentation less X-specific. 143516c src/emacs.c (syms_of_emacs) <system-configuration>: Doc fix. (Bug#19502)
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog17
-rw-r--r--src/emacs.c4
-rw-r--r--src/w32fns.c35
-rw-r--r--src/xdisp.c19
-rw-r--r--src/xfns.c21
5 files changed, 76 insertions, 20 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8e5166e22be..45946eb4a69 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,20 @@
12015-01-05 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
4 end information if the window_end_valid flag is unset.
5 (try_window_id): If the call to display_line invalidated the
6 window end information, give up the try_window_id optimization.
7 (Bug#19511)
8
92015-01-04 Eli Zaretskii <eliz@gnu.org>
10
11 * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
12
13 * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
14
15 * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
16 (Bug#19502)
17
12015-01-27 Paul Eggert <eggert@cs.ucla.edu> 182015-01-27 Paul Eggert <eggert@cs.ucla.edu>
2 19
3 Use bool for boolean in xfaces.c 20 Use bool for boolean in xfaces.c
diff --git a/src/emacs.c b/src/emacs.c
index 345fe3e75b8..37202a14a99 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -2392,9 +2392,7 @@ hpux, irix, usg-unix-v) indicates some sort of Unix system. */);
2392 /* See configure.ac (and config.nt) for the possible SYSTEM_TYPEs. */ 2392 /* See configure.ac (and config.nt) for the possible SYSTEM_TYPEs. */
2393 2393
2394 DEFVAR_LISP ("system-configuration", Vsystem_configuration, 2394 DEFVAR_LISP ("system-configuration", Vsystem_configuration,
2395 doc: /* Value is string indicating configuration Emacs was built for. 2395 doc: /* Value is string indicating configuration Emacs was built for. */);
2396On MS-Windows, the value reflects the OS flavor and version on which
2397Emacs is running. */);
2398 Vsystem_configuration = build_string (EMACS_CONFIGURATION); 2396 Vsystem_configuration = build_string (EMACS_CONFIGURATION);
2399 2397
2400 DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options, 2398 DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options,
diff --git a/src/w32fns.c b/src/w32fns.c
index c269c4f8e68..deda2eab26d 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -4895,25 +4895,38 @@ If omitted or nil, that stands for the selected frame's display. */)
4895} 4895}
4896 4896
4897DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, 4897DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
4898 doc: /* Return the "vendor ID" string of the W32 system (Microsoft). 4898 doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
4899The optional argument DISPLAY specifies which display to ask about. 4899
4900DISPLAY should be either a frame or a display name (a string). 4900\(Labeling every distributor as a "vendor" embodies the false assumption
4901that operating systems cannot be developed and distributed noncommercially.)
4902
4903For GNU and Unix systems, this queries the X server software; for
4904MS-Windows, this queries the OS.
4905
4906The optional argument TERMINAL specifies which display to ask about.
4907TERMINAL should be a terminal object, a frame or a display name (a string).
4901If omitted or nil, that stands for the selected frame's display. */) 4908If omitted or nil, that stands for the selected frame's display. */)
4902 (Lisp_Object display) 4909 (Lisp_Object terminal)
4903{ 4910{
4904 return build_string ("Microsoft Corp."); 4911 return build_string ("Microsoft Corp.");
4905} 4912}
4906 4913
4907DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, 4914DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
4908 doc: /* Return the version numbers of the server of DISPLAY. 4915 doc: /* Return the version numbers of the GUI software on TERMINAL.
4909The value is a list of three integers: the major and minor 4916The value is a list of three integers specifying the version of the GUI
4910version numbers of the X Protocol in use, and the distributor-specific 4917software in use.
4911release number. See also the function `x-server-vendor'.
4912 4918
4913The optional argument DISPLAY specifies which display to ask about. 4919For GNU and Unix system, the first 2 numbers are the version of the X
4914DISPLAY should be either a frame or a display name (a string). 4920Protocol used on TERMINAL and the 3rd number is the distributor-specific
4921release number. For MS-Windows, the 3 numbers report the version and
4922the build number of the OS.
4923
4924See also the function `x-server-vendor'.
4925
4926The optional argument TERMINAL specifies which display to ask about.
4927TERMINAL should be a terminal object, a frame or a display name (a string).
4915If omitted or nil, that stands for the selected frame's display. */) 4928If omitted or nil, that stands for the selected frame's display. */)
4916 (Lisp_Object display) 4929 (Lisp_Object terminal)
4917{ 4930{
4918 return list3i (w32_major_version, w32_minor_version, w32_build_number); 4931 return list3i (w32_major_version, w32_minor_version, w32_build_number);
4919} 4932}
diff --git a/src/xdisp.c b/src/xdisp.c
index 71871ec5885..8d15febddc6 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9263,6 +9263,7 @@ move_it_to (struct it *it, ptrdiff_t to_charpos, int to_x, int to_y, int to_vpos
9263 && it->current_x == it->last_visible_x - 1 9263 && it->current_x == it->last_visible_x - 1
9264 && it->c != '\n' 9264 && it->c != '\n'
9265 && it->c != '\t' 9265 && it->c != '\t'
9266 && it->w->window_end_valid
9266 && it->vpos < it->w->window_end_vpos) 9267 && it->vpos < it->w->window_end_vpos)
9267 { 9268 {
9268 it->continuation_lines_width += it->current_x; 9269 it->continuation_lines_width += it->current_x;
@@ -15383,7 +15384,8 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
15383 /* Likewise there was a check whether window_end_vpos is nil or larger 15384 /* Likewise there was a check whether window_end_vpos is nil or larger
15384 than the window. Now window_end_vpos is int and so never nil, but 15385 than the window. Now window_end_vpos is int and so never nil, but
15385 let's leave eassert to check whether it fits in the window. */ 15386 let's leave eassert to check whether it fits in the window. */
15386 eassert (w->window_end_vpos < w->current_matrix->nrows); 15387 eassert (!w->window_end_valid
15388 || w->window_end_vpos < w->current_matrix->nrows);
15387 15389
15388 /* Handle case where text has not changed, only point, and it has 15390 /* Handle case where text has not changed, only point, and it has
15389 not moved off the frame. */ 15391 not moved off the frame. */
@@ -18123,6 +18125,21 @@ try_window_id (struct window *w)
18123 if (f->fonts_changed) 18125 if (f->fonts_changed)
18124 return -1; 18126 return -1;
18125 18127
18128 /* The redisplay iterations in display_line above could have
18129 triggered font-lock, which could have done something that
18130 invalidates IT->w window's end-point information, on which we
18131 rely below. E.g., one package, which will remain unnamed, used
18132 to install a font-lock-fontify-region-function that called
18133 bury-buffer, whose side effect is to switch the buffer displayed
18134 by IT->w, and that predictably resets IT->w's window_end_valid
18135 flag, which we already tested at the entry to this function.
18136 Amply punish such packages/modes by giving up on this
18137 optimization in those cases. */
18138 if (!w->window_end_valid)
18139 {
18140 clear_glyph_matrix (w->desired_matrix);
18141 return -1;
18142 }
18126 18143
18127 /* Compute differences in buffer positions, y-positions etc. for 18144 /* Compute differences in buffer positions, y-positions etc. for
18128 lines reused at the bottom of the window. Compute what we can 18145 lines reused at the bottom of the window. Compute what we can
diff --git a/src/xfns.c b/src/xfns.c
index 9dd00868d7b..234915a8ce2 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3542,10 +3542,15 @@ If omitted or nil, that stands for the selected frame's display. */)
3542} 3542}
3543 3543
3544DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, 3544DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
3545 doc: /* Return the "vendor ID" string of the X server of display TERMINAL. 3545 doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
3546
3546\(Labeling every distributor as a "vendor" embodies the false assumption 3547\(Labeling every distributor as a "vendor" embodies the false assumption
3547that operating systems cannot be developed and distributed noncommercially.) 3548that operating systems cannot be developed and distributed noncommercially.)
3548The optional argument TERMINAL specifies which display to ask about. 3549The optional argument TERMINAL specifies which display to ask about.
3550
3551For GNU and Unix systems, this queries the X server software; for
3552MS-Windows, this queries the OS.
3553
3549TERMINAL should be a terminal object, a frame or a display name (a string). 3554TERMINAL should be a terminal object, a frame or a display name (a string).
3550If omitted or nil, that stands for the selected frame's display. */) 3555If omitted or nil, that stands for the selected frame's display. */)
3551 (Lisp_Object terminal) 3556 (Lisp_Object terminal)
@@ -3558,10 +3563,16 @@ If omitted or nil, that stands for the selected frame's display. */)
3558} 3563}
3559 3564
3560DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, 3565DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
3561 doc: /* Return the version numbers of the X server of display TERMINAL. 3566 doc: /* Return the version numbers of the GUI software on TERMINAL.
3562The value is a list of three integers: the major and minor 3567The value is a list of three integers specifying the version of the GUI
3563version numbers of the X Protocol in use, and the distributor-specific release 3568software in use.
3564number. See also the function `x-server-vendor'. 3569
3570For GNU and Unix system, the first 2 numbers are the version of the X
3571Protocol used on TERMINAL and the 3rd number is the distributor-specific
3572release number. For MS-Windows, the 3 numbers report the version and
3573the build number of the OS.
3574
3575See also the function `x-server-vendor'.
3565 3576
3566The optional argument TERMINAL specifies which display to ask about. 3577The optional argument TERMINAL specifies which display to ask about.
3567TERMINAL should be a terminal object, a frame or a display name (a string). 3578TERMINAL should be a terminal object, a frame or a display name (a string).