emacs-diffs
[Top][All Lists]
Advanced

[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).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]