diff options
| author | Paul Eggert | 2016-06-07 09:34:27 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-06-07 09:34:27 -0700 |
| commit | 2aa6b47e3e216410195cf7ec3abb5902f38082fa (patch) | |
| tree | 1b993c346dd4b6e92df488e1228411a6c737fef0 | |
| parent | 5bc3263303bde93db32b0799ecee0cfa9fe40e9a (diff) | |
| parent | 6e3adf8a4a796cea4328a528da48fc972b3feed6 (diff) | |
| download | emacs-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/PROBLEMS | 7 | ||||
| -rw-r--r-- | lisp/files.el | 2 | ||||
| -rw-r--r-- | lisp/mouse.el | 10 | ||||
| -rw-r--r-- | lisp/progmodes/ruby-mode.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/vhdl-mode.el | 2 | ||||
| -rw-r--r-- | lisp/subr.el | 4 | ||||
| -rw-r--r-- | lisp/view.el | 2 | ||||
| -rw-r--r-- | src/nsfns.m | 2 | ||||
| -rw-r--r-- | src/syntax.c | 61 |
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 | |||
| 2424 | The symbol is sendmmsg@FBSD_1.4. This is due to a faulty libgio | ||
| 2425 | library on these systems. The solution is to reconfigure Emacs while | ||
| 2426 | disabling all the features that require libgio: rsvg, dbus, gconf, and | ||
| 2427 | imagemagick. | ||
| 2428 | |||
| 2422 | *** Building Emacs for Cygwin can fail with GCC 3 | 2429 | *** Building Emacs for Cygwin can fail with GCC 3 |
| 2423 | 2430 | ||
| 2424 | As of Emacs 22.1, there have been stability problems with Cygwin | 2431 | As 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 | ||
| 6211 | PATTERN is assumed to represent a file-name wildcard suitable for the | 6211 | PATTERN is assumed to represent a file-name wildcard suitable for the |
| 6212 | underlying filesystem. For Unix and GNU/Linux, each character from the | 6212 | underlying filesystem. For Unix and GNU/Linux, each character from the |
| 6213 | set [ \\t\\n;<>&|()`'\"#$] is quoted with a backslash; for DOS/Windows, all | 6213 | set [ \\t\\n;<>&|()\\=`\\='\"#$] is quoted with a backslash; for DOS/Windows, all |
| 6214 | the parts of the pattern which don't include wildcard characters are | 6214 | the parts of the pattern which don't include wildcard characters are |
| 6215 | quoted with double quotes. | 6215 | quoted 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 | |||
| 3954 | of STRING, the same substring that is the actual text of the match which | 3954 | of STRING, the same substring that is the actual text of the match which |
| 3955 | is passed to REP as its argument. | 3955 | is passed to REP as its argument. |
| 3956 | 3956 | ||
| 3957 | To replace only the first match (if any), make REGEXP match up to \\' | 3957 | To replace only the first match (if any), make REGEXP match up to \\\\=' |
| 3958 | and replace a sub-expression, e.g. | 3958 | and 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. |
| 433 | s do forward incremental search. | 433 | s do forward incremental search. |
| 434 | r do reverse incremental search. | 434 | r 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 | ||
| 3131 | When you miniaturize a Group, Summary or Article frame, Gnus.tiff will | 3131 | When 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. */) | |||
| 3109 | DEFUN ("backward-prefix-chars", Fbackward_prefix_chars, Sbackward_prefix_chars, | 3098 | DEFUN ("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. |
| 3112 | This includes chars with expression prefix syntax class (') and those with | 3101 | This includes chars with expression prefix syntax class (\\=') and those with |
| 3113 | the prefix syntax flag (p). */) | 3102 | the prefix syntax flag (p). */) |
| 3114 | (void) | 3103 | (void) |
| 3115 | { | 3104 | { |