aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-06-07 09:34:27 -0700
committerPaul Eggert2016-06-07 09:34:27 -0700
commit2aa6b47e3e216410195cf7ec3abb5902f38082fa (patch)
tree1b993c346dd4b6e92df488e1228411a6c737fef0
parent5bc3263303bde93db32b0799ecee0cfa9fe40e9a (diff)
parent6e3adf8a4a796cea4328a528da48fc972b3feed6 (diff)
downloademacs-2aa6b47e3e216410195cf7ec3abb5902f38082fa.tar.gz
emacs-2aa6b47e3e216410195cf7ec3abb5902f38082fa.zip
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.
-rw-r--r--etc/PROBLEMS7
-rw-r--r--lisp/files.el2
-rw-r--r--lisp/mouse.el10
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--lisp/progmodes/vhdl-mode.el2
-rw-r--r--lisp/subr.el4
-rw-r--r--lisp/view.el2
-rw-r--r--src/nsfns.m2
-rw-r--r--src/syntax.c61
9 files changed, 48 insertions, 44 deletions
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index bc814169b79..7f6ac138e7e 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2419,6 +2419,13 @@ files are installed. Then use:
2419 2419
2420(using the location of the 32-bit X libraries on your system). 2420(using the location of the 32-bit X libraries on your system).
2421 2421
2422*** Building on FreeBSD 11 fails at link time due to unresolved symbol
2423
2424The symbol is sendmmsg@FBSD_1.4. This is due to a faulty libgio
2425library on these systems. The solution is to reconfigure Emacs while
2426disabling all the features that require libgio: rsvg, dbus, gconf, and
2427imagemagick.
2428
2422*** Building Emacs for Cygwin can fail with GCC 3 2429*** Building Emacs for Cygwin can fail with GCC 3
2423 2430
2424As of Emacs 22.1, there have been stability problems with Cygwin 2431As of Emacs 22.1, there have been stability problems with Cygwin
diff --git a/lisp/files.el b/lisp/files.el
index db274e2782d..4610c0a11e0 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6210,7 +6210,7 @@ and `list-directory-verbose-switches'."
6210 6210
6211PATTERN is assumed to represent a file-name wildcard suitable for the 6211PATTERN is assumed to represent a file-name wildcard suitable for the
6212underlying filesystem. For Unix and GNU/Linux, each character from the 6212underlying filesystem. For Unix and GNU/Linux, each character from the
6213set [ \\t\\n;<>&|()`'\"#$] is quoted with a backslash; for DOS/Windows, all 6213set [ \\t\\n;<>&|()\\=`\\='\"#$] is quoted with a backslash; for DOS/Windows, all
6214the parts of the pattern which don't include wildcard characters are 6214the parts of the pattern which don't include wildcard characters are
6215quoted with double quotes. 6215quoted with double quotes.
6216 6216
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 3e3708a2e0d..0be17b48cac 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -415,7 +415,15 @@ must be one of the symbols `header', `mode', or `vertical'."
415 (or (not resize-mini-windows) 415 (or (not resize-mini-windows)
416 (eq minibuffer-window 416 (eq minibuffer-window
417 (active-minibuffer-window))))))) 417 (active-minibuffer-window)))))))
418 (setq draggable nil)))) 418 (setq draggable nil)))
419 ((eq line 'vertical)
420 (let ((divider-width (frame-right-divider-width frame)))
421 (when (and (or (not (numberp divider-width))
422 (zerop divider-width))
423 (eq (cdr (assq 'vertical-scroll-bars
424 (frame-parameters frame)))
425 'left))
426 (setq window (window-in-direction 'left window t))))))
419 427
420 (let* ((exitfun nil) 428 (let* ((exitfun nil)
421 (move 429 (move
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index cd3b04de712..d75edbc84ef 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1151,7 +1151,7 @@ delimiter."
1151 ((looking-at "<<") 1151 ((looking-at "<<")
1152 (cond 1152 (cond
1153 ((and (ruby-expr-beg 'heredoc) 1153 ((and (ruby-expr-beg 'heredoc)
1154 (looking-at "<<\\(-\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)")) 1154 (looking-at "<<\\([-~]\\)?\\(\\([\"'`]\\)\\([^\n]+?\\)\\3\\|\\(?:\\sw\\|\\s_\\)+\\)"))
1155 (setq re (regexp-quote (or (match-string 4) (match-string 2)))) 1155 (setq re (regexp-quote (or (match-string 4) (match-string 2))))
1156 (if (match-beginning 1) (setq re (concat "\\s *" re))) 1156 (if (match-beginning 1) (setq re (concat "\\s *" re)))
1157 (let* ((id-end (goto-char (match-end 0))) 1157 (let* ((id-end (goto-char (match-end 0)))
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index a390494ebf5..0756c790495 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -4684,7 +4684,7 @@ Usage:
4684 SPECIAL MENUES: 4684 SPECIAL MENUES:
4685 As an alternative to the speedbar, an index menu can be added (set 4685 As an alternative to the speedbar, an index menu can be added (set
4686 option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu 4686 option `vhdl-index-menu' to non-nil) or made accessible as a mouse menu
4687 (e.g. add \"(global-set-key '[S-down-mouse-3] 'imenu)\" to your start-up 4687 (e.g. add \"(global-set-key [S-down-mouse-3] \\='imenu)\" to your start-up
4688 file) for browsing the file contents (is not populated if buffer is 4688 file) for browsing the file contents (is not populated if buffer is
4689 larger than 256000). Also, a source file menu can be 4689 larger than 256000). Also, a source file menu can be
4690 added (set option `vhdl-source-file-menu' to non-nil) for browsing the 4690 added (set option `vhdl-source-file-menu' to non-nil) for browsing the
diff --git a/lisp/subr.el b/lisp/subr.el
index b66ff288b7a..358bfa5e1c0 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
3954of STRING, the same substring that is the actual text of the match which 3954of STRING, the same substring that is the actual text of the match which
3955is passed to REP as its argument. 3955is passed to REP as its argument.
3956 3956
3957To replace only the first match (if any), make REGEXP match up to \\' 3957To replace only the first match (if any), make REGEXP match up to \\\\='
3958and replace a sub-expression, e.g. 3958and replace a sub-expression, e.g.
3959 (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1) 3959 (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\\\='\" \"bar\" \" foo foo\" nil nil 1)
3960 => \" bar foo\"" 3960 => \" bar foo\""
3961 3961
3962 ;; To avoid excessive consing from multiple matches in long strings, 3962 ;; To avoid excessive consing from multiple matches in long strings,
diff --git a/lisp/view.el b/lisp/view.el
index 830073a0639..ff7d2c9deb1 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -429,7 +429,7 @@ x exchanges point and mark.
429 Mark ring is pushed at start of every successful search and when 429 Mark ring is pushed at start of every successful search and when
430 jump to line occurs. The mark is set on jump to buffer start or end. 430 jump to line occurs. The mark is set on jump to buffer start or end.
431\\[point-to-register] save current position in character register. 431\\[point-to-register] save current position in character register.
432' go to position saved in character register. 432\\=' go to position saved in character register.
433s do forward incremental search. 433s do forward incremental search.
434r do reverse incremental search. 434r do reverse incremental search.
435\\[View-search-regexp-forward] searches forward for regular expression, starting after current page. 435\\[View-search-regexp-forward] searches forward for regular expression, starting after current page.
diff --git a/src/nsfns.m b/src/nsfns.m
index ea099081a7f..9bc6c1d3418 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -3125,7 +3125,7 @@ Example: Install an icon Gnus.tiff and execute the following code
3125 3125
3126 (setq ns-icon-type-alist 3126 (setq ns-icon-type-alist
3127 (append ns-icon-type-alist 3127 (append ns-icon-type-alist
3128 '((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\" 3128 \\='((\"^\\\\*\\\\(Group\\\\*$\\\\|Summary \\\\|Article\\\\*$\\\\)\"
3129 . \"Gnus\")))) 3129 . \"Gnus\"))))
3130 3130
3131When you miniaturize a Group, Summary or Article frame, Gnus.tiff will 3131When you miniaturize a Group, Summary or Article frame, Gnus.tiff will
diff --git a/src/syntax.c b/src/syntax.c
index 1c3f644aec5..78c7de9c65b 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -2182,63 +2182,51 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim)
2182 ptrdiff_t start_point = PT; 2182 ptrdiff_t start_point = PT;
2183 ptrdiff_t pos = PT; 2183 ptrdiff_t pos = PT;
2184 ptrdiff_t pos_byte = PT_BYTE; 2184 ptrdiff_t pos_byte = PT_BYTE;
2185 unsigned char *p = PT_ADDR, *endp, *stop; 2185 unsigned char *p, *endp, *stop;
2186
2187 if (forwardp)
2188 {
2189 endp = (XINT (lim) == GPT) ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
2190 stop = (pos < GPT && GPT < XINT (lim)) ? GPT_ADDR : endp;
2191 }
2192 else
2193 {
2194 endp = CHAR_POS_ADDR (XINT (lim));
2195 stop = (pos >= GPT && GPT > XINT (lim)) ? GAP_END_ADDR : endp;
2196 }
2197 2186
2198 immediate_quit = 1; 2187 immediate_quit = 1;
2199 SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1); 2188 SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1);
2189
2200 if (forwardp) 2190 if (forwardp)
2201 { 2191 {
2202 if (multibyte) 2192 while (true)
2203 { 2193 {
2204 while (1) 2194 p = BYTE_POS_ADDR (pos_byte);
2195 endp = XINT (lim) == GPT ? GPT_ADDR : CHAR_POS_ADDR (XINT (lim));
2196 stop = pos < GPT && GPT < XINT (lim) ? GPT_ADDR : endp;
2197
2198 do
2205 { 2199 {
2206 int nbytes; 2200 int nbytes;
2207 2201
2208 if (p >= stop) 2202 if (p >= stop)
2209 { 2203 {
2210 if (p >= endp) 2204 if (p >= endp)
2211 break; 2205 goto done;
2212 p = GAP_END_ADDR; 2206 p = GAP_END_ADDR;
2213 stop = endp; 2207 stop = endp;
2214 } 2208 }
2215 c = STRING_CHAR_AND_LENGTH (p, nbytes); 2209 if (multibyte)
2210 c = STRING_CHAR_AND_LENGTH (p, nbytes);
2211 else
2212 c = *p, nbytes = 1;
2216 if (! fastmap[SYNTAX (c)]) 2213 if (! fastmap[SYNTAX (c)])
2217 break; 2214 goto done;
2218 p += nbytes, pos++, pos_byte += nbytes; 2215 p += nbytes, pos++, pos_byte += nbytes;
2219 UPDATE_SYNTAX_TABLE_FORWARD (pos);
2220 }
2221 }
2222 else
2223 {
2224 while (1)
2225 {
2226 if (p >= stop)
2227 {
2228 if (p >= endp)
2229 break;
2230 p = GAP_END_ADDR;
2231 stop = endp;
2232 }
2233 if (! fastmap[SYNTAX (*p)])
2234 break;
2235 p++, pos++, pos_byte++;
2236 UPDATE_SYNTAX_TABLE_FORWARD (pos);
2237 } 2216 }
2217 while (!parse_sexp_lookup_properties
2218 || pos < gl_state.e_property);
2219
2220 update_syntax_table_forward (pos + gl_state.offset,
2221 false, gl_state.object);
2238 } 2222 }
2239 } 2223 }
2240 else 2224 else
2241 { 2225 {
2226 p = BYTE_POS_ADDR (pos_byte);
2227 endp = CHAR_POS_ADDR (XINT (lim));
2228 stop = pos >= GPT && GPT > XINT (lim) ? GAP_END_ADDR : endp;
2229
2242 if (multibyte) 2230 if (multibyte)
2243 { 2231 {
2244 while (1) 2232 while (1)
@@ -2280,6 +2268,7 @@ skip_syntaxes (bool forwardp, Lisp_Object string, Lisp_Object lim)
2280 } 2268 }
2281 } 2269 }
2282 2270
2271 done:
2283 SET_PT_BOTH (pos, pos_byte); 2272 SET_PT_BOTH (pos, pos_byte);
2284 immediate_quit = 0; 2273 immediate_quit = 0;
2285 2274
@@ -3109,7 +3098,7 @@ but before count is used up, nil is returned. */)
3109DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars, 3098DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars,
3110 0, 0, 0, 3099 0, 0, 0,
3111 doc: /* Move point backward over any number of chars with prefix syntax. 3100 doc: /* Move point backward over any number of chars with prefix syntax.
3112This includes chars with expression prefix syntax class (') and those with 3101This includes chars with expression prefix syntax class (\\=') and those with
3113the prefix syntax flag (p). */) 3102the prefix syntax flag (p). */)
3114 (void) 3103 (void)
3115{ 3104{