emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 2aa6b47 3/3: Merge from origin/emacs-25


From: Paul Eggert
Subject: [Emacs-diffs] master 2aa6b47 3/3: Merge from origin/emacs-25
Date: Tue, 7 Jun 2016 16:36:37 +0000 (UTC)

branch: master
commit 2aa6b47e3e216410195cf7ec3abb5902f38082fa
Merge: 5bc3263 6e3adf8
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Merge from origin/emacs-25
    
    6e3adf8 Fix crash in syntax.c after GC
    973ce5a Improve squiggly heredoc support in non-SMIE Ruby mode
    9d5cceb Fix doc string quoting
    0b33a23 Fix mouse dragging of vertical dividers with scroll bars on l...
    a5d05f4 * etc/PROBLEMS: Mention the link-time problems on FreeBSD 11.
---
 etc/PROBLEMS                |    7 +++++
 lisp/files.el               |    2 +-
 lisp/mouse.el               |   10 ++++++-
 lisp/progmodes/ruby-mode.el |    2 +-
 lisp/progmodes/vhdl-mode.el |    2 +-
 lisp/subr.el                |    4 +--
 lisp/view.el                |    2 +-
 src/nsfns.m                 |    2 +-
 src/syntax.c                |   61 ++++++++++++++++++-------------------------
 9 files changed, 48 insertions(+), 44 deletions(-)

diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index bc81416..7f6ac13 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2419,6 +2419,13 @@ files are installed.  Then use:
 
 (using the location of the 32-bit X libraries on your system).
 
+*** Building on FreeBSD 11 fails at link time due to unresolved symbol
+
+The symbol is address@hidden  This is due to a faulty libgio
+library on these systems.  The solution is to reconfigure Emacs while
+disabling all the features that require libgio: rsvg, dbus, gconf, and
+imagemagick.
+
 *** Building Emacs for Cygwin can fail with GCC 3
 
 As of Emacs 22.1, there have been stability problems with Cygwin
diff --git a/lisp/files.el b/lisp/files.el
index db274e2..4610c0a 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6210,7 +6210,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.
 
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 3e3708a..0be17b4 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -415,7 +415,15 @@ must be one of the symbols `header', `mode', or 
`vertical'."
                           (or (not resize-mini-windows)
                               (eq minibuffer-window
                                   (active-minibuffer-window)))))))
-         (setq draggable nil))))
+         (setq draggable nil)))
+     ((eq line 'vertical)
+      (let ((divider-width (frame-right-divider-width frame)))
+        (when (and (or (not (numberp divider-width))
+                       (zerop divider-width))
+                   (eq (cdr (assq 'vertical-scroll-bars
+                                  (frame-parameters frame)))
+                       'left))
+       (setq window (window-in-direction 'left window t))))))
 
     (let* ((exitfun nil)
            (move
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index cd3b04d..d75edbc 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1151,7 +1151,7 @@ delimiter."
        ((looking-at "<<")
         (cond
          ((and (ruby-expr-beg 'heredoc)
-               (looking-at 
"<<\\(-\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)"))
+               (looking-at 
"<<\\([-~]\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)"))
           (setq re (regexp-quote (or (match-string 4) (match-string 2))))
           (if (match-beginning 1) (setq re (concat "\\s *" re)))
           (let* ((id-end (goto-char (match-end 0)))
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index a390494..0756c79 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -4684,7 +4684,7 @@ Usage:
   SPECIAL MENUES:
     As an alternative to the speedbar, an index menu can be added (set
     option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu
-    (e.g. add \"(global-set-key '[S-down-mouse-3] 'imenu)\" to your start-up
+    (e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up
     file) for browsing the file contents (is not populated if buffer is
     larger than 256000).  Also, a source file menu can be
     added (set option `vhdl-source-file-menu' to non-nil) for browsing the
diff --git a/lisp/subr.el b/lisp/subr.el
index b66ff28..358bfa5 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3954,9 +3954,9 @@ the match data are the result of matching REGEXP against 
a substring
 of STRING, the same substring that is the actual text of the match which
 is passed to REP as its argument.
 
-To replace only the first match (if any), make REGEXP match up to \\'
+To replace only the first match (if any), make REGEXP match up to \\\\='
 and replace a sub-expression, e.g.
-  (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil 
nil 1)
+  (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\\\='\" \"bar\" \" foo foo\" 
nil nil 1)
     => \" bar foo\""
 
   ;; To avoid excessive consing from multiple matches in long strings,
diff --git a/lisp/view.el b/lisp/view.el
index 830073a..ff7d2c9 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -429,7 +429,7 @@ x   exchanges point and mark.
          Mark ring is pushed at start of every successful search and when
          jump to line occurs.  The mark is set on jump to buffer start or end.
 \\[point-to-register]  save current position in character register.
-'      go to position saved in character register.
+\\='   go to position saved in character register.
 s      do forward incremental search.
 r      do reverse incremental search.
 \\[View-search-regexp-forward] searches forward for regular expression, 
starting after current page.
diff --git a/src/nsfns.m b/src/nsfns.m
index ea09908..9bc6c1d 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -3125,7 +3125,7 @@ Example: Install an icon Gnus.tiff and execute the 
following code
 
   (setq ns-icon-type-alist
         (append ns-icon-type-alist
-                '((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary 
\\\\|Article\\\\*$\\\\)\"
+                \\='((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary 
\\\\|Article\\\\*$\\\\)\"
                    . \"Gnus\"))))
 
 When you miniaturize a Group, Summary or Article frame, Gnus.tiff will
diff --git a/src/syntax.c b/src/syntax.c
index 1c3f644..78c7de9 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -2182,63 +2182,51 @@ skip_syntaxes (bool forwardp, Lisp_Object string, 
Lisp_Object lim)
     ptrdiff_t start_point = PT;
     ptrdiff_t pos = PT;
     ptrdiff_t pos_byte = PT_BYTE;
-    unsigned char *p = PT_ADDR, *endp, *stop;
-
-    if (forwardp)
-      {
-       endp = (XINT (lim) == GPT) ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
-       stop = (pos < GPT && GPT < XINT (lim)) ? GPT_ADDR : endp;
-      }
-    else
-      {
-       endp = CHAR_POS_ADDR (XINT (lim));
-       stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp;
-      }
+    unsigned char *p, *endp, *stop;
 
     immediate_quit = 1;
     SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
+
     if (forwardp)
       {
-       if (multibyte)
+       while (true)
          {
-           while (1)
+           p = BYTE_POS_ADDR (pos_byte);
+           endp = XINT (lim) == GPT ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
+           stop = pos < GPT && GPT < XINT (lim) ? GPT_ADDR : endp;
+
+           do
              {
                int nbytes;
 
                if (p >= stop)
                  {
                    if (p >= endp)
-                     break;
+                     goto done;
                    p = GAP_END_ADDR;
                    stop = endp;
                  }
-               c = STRING_CHAR_AND_LENGTH (p, nbytes);
+               if (multibyte)
+                 c = STRING_CHAR_AND_LENGTH (p, nbytes);
+               else
+                 c = *p, nbytes = 1;
                if (! fastmap[SYNTAX (c)])
-                 break;
+                 goto done;
                p += nbytes, pos++, pos_byte += nbytes;
-               UPDATE_SYNTAX_TABLE_FORWARD (pos);
-             }
-         }
-       else
-         {
-           while (1)
-             {
-               if (p >= stop)
-                 {
-                   if (p >= endp)
-                     break;
-                   p = GAP_END_ADDR;
-                   stop = endp;
-                 }
-               if (! fastmap[SYNTAX (*p)])
-                 break;
-               p++, pos++, pos_byte++;
-               UPDATE_SYNTAX_TABLE_FORWARD (pos);
              }
+           while (!parse_sexp_lookup_properties
+                  || pos < gl_state.e_property);
+
+           update_syntax_table_forward (pos + gl_state.offset,
+                                        false, gl_state.object);
          }
       }
     else
       {
+       p = BYTE_POS_ADDR (pos_byte);
+       endp = CHAR_POS_ADDR (XINT (lim));
+       stop = pos >= GPT && GPT > XINT (lim) ? GAP_END_ADDR : endp;
+
        if (multibyte)
          {
            while (1)
@@ -2280,6 +2268,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, 
Lisp_Object lim)
          }
       }
 
+  done:
     SET_PT_BOTH (pos, pos_byte);
     immediate_quit = 0;
 
@@ -3109,7 +3098,7 @@ but before count is used up, nil is returned.  */)
 DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars,
        0, 0, 0,
        doc: /* Move point backward over any number of chars with prefix syntax.
-This includes chars with expression prefix syntax class (') and those with
+This includes chars with expression prefix syntax class (\\=') and those with
 the prefix syntax flag (p).  */)
   (void)
 {



reply via email to

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