[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master d7a8981 05/19: Merge from origin/emacs-24
From: |
Fabián Ezequiel Gallina |
Subject: |
[Emacs-diffs] master d7a8981 05/19: Merge from origin/emacs-24 |
Date: |
Wed, 28 Jan 2015 04:50:09 +0000 |
branch: master
commit d7a89815b6d69c3b1793d34bcad8bf0aa21d48c8
Merge: 3a8b701 d279e66
Author: Fabián Ezequiel Gallina <address@hidden>
Commit: Fabián Ezequiel Gallina <address@hidden>
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)
---
doc/lispref/ChangeLog | 5 +++++
doc/lispref/frames.texi | 24 +++++++++++++++---------
lisp/ChangeLog | 6 ++++++
lisp/files.el | 8 ++++----
src/ChangeLog | 17 +++++++++++++++++
src/emacs.c | 4 +---
src/w32fns.c | 35 ++++++++++++++++++++++++-----------
src/xdisp.c | 19 ++++++++++++++++++-
src/xfns.c | 21 ++++++++++++++++-----
9 files changed, 106 insertions(+), 33 deletions(-)
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 4c0c116..1819989 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-04 Eli Zaretskii <address@hidden>
+
+ * frames.texi (Display Feature Testing): Make the description of
+ x-server-version and x-server-vendor less X-specific. (Bug#19502)
+
2015-01-15 Eli Zaretskii <address@hidden>
* streams.texi (Input Functions): Document 'set-binary-mode'.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 663207c..a6f4081 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -2782,20 +2782,26 @@ colors).
This function returns the number of color cells the screen supports.
@end defun
- These functions obtain additional information specifically
-about X displays.
+ These functions obtain additional information about the window
+system in use where Emacs shows the specified @var{display}. (Their
+names begin with @code{x-} for historical reasons.)
@defun x-server-version &optional display
-This function returns the list of version numbers of the X server
-running the display. The value is a list of three integers: the major
-and minor version numbers of the X protocol, and the
-distributor-specific release number of the X server software itself.
+This function returns the list of version numbers of the GUI window
+system running on @var{display}, such as the X server on GNU and Unix
+systems. The value is a list of three integers: the major and minor
+version numbers of the protocol, and the distributor-specific release
+number of the window system software itself. On GNU and Unix systems,
+these are normally the version of the X protocol and the
+distributor-specific release number of the X server software. On
+MS-Windows, this is the version of the Windows OS.
@end defun
@defun x-server-vendor &optional display
-This function returns the ``vendor'' that provided the X server
-software (as a string). Really this means whoever distributes the X
-server.
+This function returns the ``vendor'' that provided the window system
+software (as a string). On GNU and Unix systems this really means
+whoever distributes the X server. On MS-Windows this is the vendor ID
+string of the Windows OS (Microsoft).
When the developers of X labeled software distributors as
``vendors'', they showed their false assumption that no system could
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 816a8cb..7322890 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-04 Paul Eggert <address@hidden>
+
+ Fix dired quoting bug with "Hit`N`Hide"
+ Fixes Bug#19498.
+ * files.el (shell-quote-wildcard-pattern): Also quote "`".
+
2015-01-27 Katsumi Yamaoka <address@hidden>
* emacs-lisp/cl.el (cl--function-convert):
diff --git a/lisp/files.el b/lisp/files.el
index ed1943d..40a4289 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6094,7 +6094,7 @@ and `list-directory-verbose-switches'."
PATTERN is assumed to represent a file-name wildcard suitable for the
underlying filesystem. For Unix and GNU/Linux, each character from the
-set [ \\t\\n;<>&|()'\"#$] is quoted with a backslash; for DOS/Windows, all
+set [ \\t\\n;<>&|()`'\"#$] is quoted with a backslash; for DOS/Windows, all
the parts of the pattern which don't include wildcard characters are
quoted with double quotes.
@@ -6108,12 +6108,12 @@ need to be passed verbatim to shell commands."
;; argument has quotes, we can safely assume it is already
;; quoted by the caller.
(if (or (string-match "[\"]" pattern)
- ;; We quote [&()#$'] in case their shell is a port of a
+ ;; We quote [&()#$`'] in case their shell is a port of a
;; Unixy shell. We quote [,=+] because stock DOS and
;; Windows shells require that in some cases, such as
;; passing arguments to batch files that use positional
;; arguments like %1.
- (not (string-match "[ \t;&()#$',=+]" pattern)))
+ (not (string-match "[ \t;&()#$`',=+]" pattern)))
pattern
(let ((result "\"")
(beg 0)
@@ -6128,7 +6128,7 @@ need to be passed verbatim to shell commands."
(concat result (substring pattern beg) "\""))))
(t
(let ((beg 0))
- (while (string-match "[ \t\n;<>&|()'\"#$]" pattern beg)
+ (while (string-match "[ \t\n;<>&|()`'\"#$]" pattern beg)
(setq pattern
(concat (substring pattern 0 (match-beginning 0))
"\\"
diff --git a/src/ChangeLog b/src/ChangeLog
index 8e5166e..45946eb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,20 @@
+2015-01-05 Eli Zaretskii <address@hidden>
+
+ * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
+ end information if the window_end_valid flag is unset.
+ (try_window_id): If the call to display_line invalidated the
+ window end information, give up the try_window_id optimization.
+ (Bug#19511)
+
+2015-01-04 Eli Zaretskii <address@hidden>
+
+ * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
+
+ * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
+
+ * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
+ (Bug#19502)
+
2015-01-27 Paul Eggert <address@hidden>
Use bool for boolean in xfaces.c
diff --git a/src/emacs.c b/src/emacs.c
index 345fe3e..37202a1 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -2392,9 +2392,7 @@ hpux, irix, usg-unix-v) indicates some sort of Unix
system. */);
/* See configure.ac (and config.nt) for the possible SYSTEM_TYPEs. */
DEFVAR_LISP ("system-configuration", Vsystem_configuration,
- doc: /* Value is string indicating configuration Emacs was built
for.
-On MS-Windows, the value reflects the OS flavor and version on which
-Emacs is running. */);
+ doc: /* Value is string indicating configuration Emacs was built
for. */);
Vsystem_configuration = build_string (EMACS_CONFIGURATION);
DEFVAR_LISP ("system-configuration-options", Vsystem_configuration_options,
diff --git a/src/w32fns.c b/src/w32fns.c
index c269c4f..deda2ea 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. */)
}
DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
- doc: /* Return the "vendor ID" string of the W32 system (Microsoft).
-The optional argument DISPLAY specifies which display to ask about.
-DISPLAY should be either a frame or a display name (a string).
+ doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
+
+\(Labeling every distributor as a "vendor" embodies the false assumption
+that operating systems cannot be developed and distributed noncommercially.)
+
+For GNU and Unix systems, this queries the X server software; for
+MS-Windows, this queries the OS.
+
+The optional argument TERMINAL specifies which display to ask about.
+TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (Lisp_Object display)
+ (Lisp_Object terminal)
{
return build_string ("Microsoft Corp.");
}
DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
- doc: /* Return the version numbers of the server of DISPLAY.
-The value is a list of three integers: the major and minor
-version numbers of the X Protocol in use, and the distributor-specific
-release number. See also the function `x-server-vendor'.
+ doc: /* Return the version numbers of the GUI software on TERMINAL.
+The value is a list of three integers specifying the version of the GUI
+software in use.
-The optional argument DISPLAY specifies which display to ask about.
-DISPLAY should be either a frame or a display name (a string).
+For GNU and Unix system, the first 2 numbers are the version of the X
+Protocol used on TERMINAL and the 3rd number is the distributor-specific
+release number. For MS-Windows, the 3 numbers report the version and
+the build number of the OS.
+
+See also the function `x-server-vendor'.
+
+The optional argument TERMINAL specifies which display to ask about.
+TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (Lisp_Object display)
+ (Lisp_Object terminal)
{
return list3i (w32_major_version, w32_minor_version, w32_build_number);
}
diff --git a/src/xdisp.c b/src/xdisp.c
index 71871ec..8d15feb 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
&& it->current_x == it->last_visible_x - 1
&& it->c != '\n'
&& it->c != '\t'
+ && it->w->window_end_valid
&& it->vpos < it->w->window_end_vpos)
{
it->continuation_lines_width += it->current_x;
@@ -15383,7 +15384,8 @@ try_cursor_movement (Lisp_Object window, struct
text_pos startp, int *scroll_ste
/* Likewise there was a check whether window_end_vpos is nil or larger
than the window. Now window_end_vpos is int and so never nil, but
let's leave eassert to check whether it fits in the window. */
- eassert (w->window_end_vpos < w->current_matrix->nrows);
+ eassert (!w->window_end_valid
+ || w->window_end_vpos < w->current_matrix->nrows);
/* Handle case where text has not changed, only point, and it has
not moved off the frame. */
@@ -18123,6 +18125,21 @@ try_window_id (struct window *w)
if (f->fonts_changed)
return -1;
+ /* The redisplay iterations in display_line above could have
+ triggered font-lock, which could have done something that
+ invalidates IT->w window's end-point information, on which we
+ rely below. E.g., one package, which will remain unnamed, used
+ to install a font-lock-fontify-region-function that called
+ bury-buffer, whose side effect is to switch the buffer displayed
+ by IT->w, and that predictably resets IT->w's window_end_valid
+ flag, which we already tested at the entry to this function.
+ Amply punish such packages/modes by giving up on this
+ optimization in those cases. */
+ if (!w->window_end_valid)
+ {
+ clear_glyph_matrix (w->desired_matrix);
+ return -1;
+ }
/* Compute differences in buffer positions, y-positions etc. for
lines reused at the bottom of the window. Compute what we can
diff --git a/src/xfns.c b/src/xfns.c
index 9dd0086..234915a 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. */)
}
DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
- doc: /* Return the "vendor ID" string of the X server of display
TERMINAL.
+ doc: /* Return the "vendor ID" string of the GUI software on TERMINAL.
+
\(Labeling every distributor as a "vendor" embodies the false assumption
that operating systems cannot be developed and distributed noncommercially.)
The optional argument TERMINAL specifies which display to ask about.
+
+For GNU and Unix systems, this queries the X server software; for
+MS-Windows, this queries the OS.
+
TERMINAL should be a terminal object, a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
(Lisp_Object terminal)
@@ -3558,10 +3563,16 @@ If omitted or nil, that stands for the selected frame's
display. */)
}
DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
- doc: /* Return the version numbers of the X server of display TERMINAL.
-The value is a list of three integers: the major and minor
-version numbers of the X Protocol in use, and the distributor-specific release
-number. See also the function `x-server-vendor'.
+ doc: /* Return the version numbers of the GUI software on TERMINAL.
+The value is a list of three integers specifying the version of the GUI
+software in use.
+
+For GNU and Unix system, the first 2 numbers are the version of the X
+Protocol used on TERMINAL and the 3rd number is the distributor-specific
+release number. For MS-Windows, the 3 numbers report the version and
+the build number of the OS.
+
+See also the function `x-server-vendor'.
The optional argument TERMINAL specifies which display to ask about.
TERMINAL should be a terminal object, a frame or a display name (a string).
- [Emacs-diffs] master updated (2668ac1 -> 5491fd1), Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 4fc35ed 02/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 3a8b701 04/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 63efa6c 06/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master f4fcb10 08/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master d7a8981 05/19: Merge from origin/emacs-24,
Fabián Ezequiel Gallina <=
- [Emacs-diffs] master 32a2c91 10/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 358a8b3 12/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 0b2014f 03/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master e57f766 07/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master b0edd7c 09/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 85ca476 14/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master f5ebe84 16/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 028ddef 18/19: Cleanup lisp/ChangeLog, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 4d0108a 11/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27
- [Emacs-diffs] master 294127e 13/19: Merge from origin/emacs-24, Fabián Ezequiel Gallina, 2015/01/27