aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-05-13 07:45:30 -0700
committerPaul Eggert2016-05-13 07:45:30 -0700
commit1adfb5ee55d16cd3d9d78998ae7bbb8e5708d9c5 (patch)
tree8a02e7689c33e13e15120508d724c497a14847c4
parent97c05cc892af85abd9438d2f685d08c557a0d9fb (diff)
parent9c2a1a264cf418fcf187b95b49fe986b32ceabef (diff)
downloademacs-1adfb5ee55d16cd3d9d78998ae7bbb8e5708d9c5.tar.gz
emacs-1adfb5ee55d16cd3d9d78998ae7bbb8e5708d9c5.zip
Merge from origin/emacs-25
9c2a1a2 * doc/misc/texinfo.tex: Sync from gnulib. 66cd4d8 * lisp/emacs-lisp/find-func.el (find-feature-regexp) (find-al... 1a5a05c Do not mistake colon at the end of regexp for slash symbol 4c5a00b Make package-install-from-buffer not move point 9596ea1 ; Revert "* emacs-lisp/lisp-mnt.el (lm-header): save-excursion" f79c352 Redo the fix for bug#21839 8d2f78c Don't treat JS spread as contination method call
-rw-r--r--doc/misc/texinfo.tex56
-rw-r--r--lisp/emacs-lisp/cl-macs.el3
-rw-r--r--lisp/emacs-lisp/find-func.el4
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el21
-rw-r--r--lisp/emacs-lisp/package.el3
-rw-r--r--lisp/help.el5
-rw-r--r--lisp/progmodes/js.el2
-rw-r--r--lisp/progmodes/ruby-mode.el4
-rw-r--r--test/lisp/progmodes/ruby-mode-tests.el3
-rw-r--r--test/manual/indent/js.js6
10 files changed, 66 insertions, 41 deletions
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 37e2de896ec..314063cafe1 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2016-04-14.07} 6\def\texinfoversion{2016-05-07.20}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -67,6 +67,10 @@
67\everyjob{\message{[Texinfo version \texinfoversion]}% 67\everyjob{\message{[Texinfo version \texinfoversion]}%
68 \catcode`+=\active \catcode`\_=\active} 68 \catcode`+=\active \catcode`\_=\active}
69 69
70% LaTeX's \typeout. This ensures that the messages it is used for
71% are identical in format to the corresponding ones from latex/pdflatex.
72\def\typeout{\immediate\write17}%
73
70\chardef\other=12 74\chardef\other=12
71 75
72% We never want plain's \outer definition of \+ in Texinfo. 76% We never want plain's \outer definition of \+ in Texinfo.
@@ -1534,7 +1538,6 @@ output) for that.)}
1534 % 1538 %
1535 % PDF outline support 1539 % PDF outline support
1536 % 1540 %
1537 \pdfmakepagedesttrue \relax
1538 % Emulate the primitive of pdfTeX 1541 % Emulate the primitive of pdfTeX
1539 \def\pdfdest name#1 xyz{% 1542 \def\pdfdest name#1 xyz{%
1540 \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}% 1543 \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}%
@@ -3270,8 +3273,8 @@ end
3270% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. 3273% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
3271% Unless we're in typewriter, use \ecfont because the CM text fonts do 3274% Unless we're in typewriter, use \ecfont because the CM text fonts do
3272% not have braces, and we don't want to switch into math. 3275% not have braces, and we don't want to switch into math.
3273\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} 3276\def\mylbrace{{\ifmonospace\char123\else\ensuremath\lbrace\fi}}
3274\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} 3277\def\myrbrace{{\ifmonospace\char125\else\ensuremath\rbrace\fi}}
3275\let\{=\mylbrace \let\lbracechar=\{ 3278\let\{=\mylbrace \let\lbracechar=\{
3276\let\}=\myrbrace \let\rbracechar=\} 3279\let\}=\myrbrace \let\rbracechar=\}
3277\begingroup 3280\begingroup
@@ -4753,7 +4756,7 @@ end
4753\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} 4756\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
4754\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}} 4757\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
4755 4758
4756% Used when writing an index entry out to an index file, to prevent 4759% Used when writing an index entry out to an index file to prevent
4757% expansion of Texinfo commands that can appear in an index entry. 4760% expansion of Texinfo commands that can appear in an index entry.
4758% 4761%
4759\def\indexdummies{% 4762\def\indexdummies{%
@@ -4889,12 +4892,9 @@ end
4889 % 4892 %
4890 % We want to disable all macros so that they are not expanded by \write. 4893 % We want to disable all macros so that they are not expanded by \write.
4891 \macrolist 4894 \macrolist
4895 \definedummyword\value
4892 % 4896 %
4893 \normalturnoffactive 4897 \normalturnoffactive
4894 %
4895 % Handle some cases of @value -- where it does not contain any
4896 % (non-fully-expandable) commands.
4897 \makevalueexpandable
4898} 4898}
4899 4899
4900% \commondummiesnofonts: common to \commondummies and \indexnofonts. 4900% \commondummiesnofonts: common to \commondummies and \indexnofonts.
@@ -5159,9 +5159,10 @@ end
5159 \ifx\suffix\indexisfl\def\suffix{f1}\fi 5159 \ifx\suffix\indexisfl\def\suffix{f1}\fi
5160 % Open the file 5160 % Open the file
5161 \immediate\openout\csname#1indfile\endcsname \jobname.\suffix 5161 \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
5162 % Using \immediate here prevents an object entering into the current box, 5162 % Using \immediate above here prevents an object entering into the current
5163 % which could confound checks such as those in \safewhatsit for preceding 5163 % box, which could confound checks such as those in \safewhatsit for
5164 % skips. 5164 % preceding skips.
5165 \typeout{Writing index file \jobname.\suffix}%
5165\fi} 5166\fi}
5166\def\indexisfl{fl} 5167\def\indexisfl{fl}
5167 5168
@@ -5369,6 +5370,7 @@ end
5369 % index. The easiest way to prevent this problem is to make sure 5370 % index. The easiest way to prevent this problem is to make sure
5370 % there is some text. 5371 % there is some text.
5371 \putwordIndexNonexistent 5372 \putwordIndexNonexistent
5373 \typeout{No file \jobname.\indexname s.}%
5372 \else 5374 \else
5373 \catcode`\\ = 0 5375 \catcode`\\ = 0
5374 % 5376 %
@@ -6682,7 +6684,14 @@ end
6682 % 1 and 2 (the page numbers aren't printed), and so are the first 6684 % 1 and 2 (the page numbers aren't printed), and so are the first
6683 % two pages of the document. Thus, we'd have two destinations named 6685 % two pages of the document. Thus, we'd have two destinations named
6684 % `1', and two named `2'. 6686 % `1', and two named `2'.
6685 \ifpdf \global\pdfmakepagedesttrue \fi 6687 \ifpdf
6688 \global\pdfmakepagedesttrue
6689 \else
6690 \ifx\XeTeXrevision\thisisundefined
6691 \else
6692 \global\pdfmakepagedesttrue
6693 \fi
6694 \fi
6686} 6695}
6687 6696
6688 6697
@@ -8862,6 +8871,7 @@ end
8862 % include an _ in the xref name, etc. 8871 % include an _ in the xref name, etc.
8863 \indexnofonts 8872 \indexnofonts
8864 \turnoffactive 8873 \turnoffactive
8874 \def\value##1{##1}%
8865 \expandafter\global\expandafter\let\expandafter\Xthisreftitle 8875 \expandafter\global\expandafter\let\expandafter\Xthisreftitle
8866 \csname XR#1-title\endcsname 8876 \csname XR#1-title\endcsname
8867 }% 8877 }%
@@ -9002,14 +9012,14 @@ end
9002 \fi\fi\fi 9012 \fi\fi\fi
9003} 9013}
9004 9014
9005% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. 9015% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
9006% If its value is nonempty, SUFFIX is output afterward. 9016% is output afterwards if non-empty.
9007%
9008\def\refx#1#2{% 9017\def\refx#1#2{%
9009 \requireauxfile 9018 \requireauxfile
9010 {% 9019 {%
9011 \indexnofonts 9020 \indexnofonts
9012 \otherbackslash 9021 \otherbackslash
9022 \def\value##1{##1}%
9013 \expandafter\global\expandafter\let\expandafter\thisrefX 9023 \expandafter\global\expandafter\let\expandafter\thisrefX
9014 \csname XR#1\endcsname 9024 \csname XR#1\endcsname
9015 }% 9025 }%
@@ -9034,16 +9044,18 @@ end
9034 #2% Output the suffix in any case. 9044 #2% Output the suffix in any case.
9035} 9045}
9036 9046
9037% This is the macro invoked by entries in the aux file. Usually it's 9047% This is the macro invoked by entries in the aux file. Define a control
9038% just a \def (we prepend XR to the control sequence name to avoid 9048% sequence for a cross-reference target (we prepend XR to the control sequence
9039% collisions). But if this is a float type, we have more work to do. 9049% name to avoid collisions). The value is the page number. If this is a float
9050% type, we have more work to do.
9040% 9051%
9041\def\xrdef#1#2{% 9052\def\xrdef#1#2{%
9042 {% The node name might contain 8-bit characters, which in our current 9053 {% Expand the node or anchor name to remove control sequences.
9043 % implementation are changed to commands like @'e. Don't let these 9054 % \turnoffactive stops 8-bit characters being changed to commands
9044 % mess up the control sequence name. 9055 % like @'e. \refx does the same to retrieve the value in the definition.
9045 \indexnofonts 9056 \indexnofonts
9046 \turnoffactive 9057 \turnoffactive
9058 \def\value##1{##1}%
9047 \xdef\safexrefname{#1}% 9059 \xdef\safexrefname{#1}%
9048 }% 9060 }%
9049 % 9061 %
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index ae52e8bebec..68abe67698c 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -299,7 +299,8 @@ FORM is of the form (ARGS . BODY)."
299 ;; Be careful with make-symbol and (back)quote, 299 ;; Be careful with make-symbol and (back)quote,
300 ;; see bug#12884. 300 ;; see bug#12884.
301 (help--docstring-quote 301 (help--docstring-quote
302 (let ((print-gensym nil) (print-quoted t)) 302 (let ((print-gensym nil) (print-quoted t)
303 (print-escape-newlines t))
303 (format "%S" (cons 'fn (cl--make-usage-args 304 (format "%S" (cons 'fn (cl--make-usage-args
304 orig-args)))))) 305 orig-args))))))
305 header))) 306 header)))
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index c625fd345c9..7bc966366bd 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -111,7 +111,7 @@ should insert the feature name."
111 ;; (point-min), which is acceptable in this case. 111 ;; (point-min), which is acceptable in this case.
112 :type 'regexp 112 :type 'regexp
113 :group 'xref 113 :group 'xref
114 :version "25.0") 114 :version "25.1")
115 115
116(defcustom find-alias-regexp 116(defcustom find-alias-regexp
117 "(defalias +'%s" 117 "(defalias +'%s"
@@ -120,7 +120,7 @@ Note it must contain a `%s' at the place where `format'
120should insert the feature name." 120should insert the feature name."
121 :type 'regexp 121 :type 'regexp
122 :group 'xref 122 :group 'xref
123 :version "25.0") 123 :version "25.1")
124 124
125(defvar find-function-regexp-alist 125(defvar find-function-regexp-alist
126 '((nil . find-function-regexp) 126 '((nil . find-function-regexp)
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index 7d5b7dc749d..46373da5eb9 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -265,17 +265,16 @@ a section."
265 265
266(defun lm-header (header) 266(defun lm-header (header)
267 "Return the contents of the header named HEADER." 267 "Return the contents of the header named HEADER."
268 (save-excursion 268 (goto-char (point-min))
269 (goto-char (point-min)) 269 (let ((case-fold-search t))
270 (let ((case-fold-search t)) 270 (when (and (re-search-forward (lm-get-header-re header) (lm-code-mark) t)
271 (when (and (re-search-forward (lm-get-header-re header) (lm-code-mark) t) 271 ;; RCS ident likes format "$identifier: data$"
272 ;; RCS ident likes format "$identifier: data$" 272 (looking-at
273 (looking-at 273 (if (save-excursion
274 (if (save-excursion 274 (skip-chars-backward "^$" (match-beginning 0))
275 (skip-chars-backward "^$" (match-beginning 0)) 275 (= (point) (match-beginning 0)))
276 (= (point) (match-beginning 0))) 276 "[^\n]+" "[^$\n]+")))
277 "[^\n]+" "[^$\n]+"))) 277 (match-string-no-properties 0))))
278 (match-string-no-properties 0)))))
279 278
280(defun lm-header-multiline (header) 279(defun lm-header-multiline (header)
281 "Return the contents of the header named HEADER, with continuation lines. 280 "Return the contents of the header named HEADER, with continuation lines.
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index c05bb53b0b3..fea184d6242 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1993,7 +1993,8 @@ Downloads and installs required packages as needed."
1993 ((derived-mode-p 'tar-mode) 1993 ((derived-mode-p 'tar-mode)
1994 (package-tar-file-info)) 1994 (package-tar-file-info))
1995 (t 1995 (t
1996 (package-buffer-info)))) 1996 (save-excursion
1997 (package-buffer-info)))))
1997 (name (package-desc-name pkg-desc))) 1998 (name (package-desc-name pkg-desc)))
1998 ;; Download and install the dependencies. 1999 ;; Download and install the dependencies.
1999 (let* ((requires (package-desc-reqs pkg-desc)) 2000 (let* ((requires (package-desc-reqs pkg-desc))
diff --git a/lisp/help.el b/lisp/help.el
index 897cab5e371..b8485667ae0 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1412,7 +1412,7 @@ ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"."
1412 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "") 1412 (if (< (- (match-end 0) (match-beginning 0)) 2) "\n" "")
1413 "\n\n") 1413 "\n\n")
1414 (if (stringp arglist) 1414 (if (stringp arglist)
1415 (if (string-match "\\`[^ ]+\\(\\(?:.\\|\n\\)*\\))\\'" arglist) 1415 (if (string-match "\\`[^ ]+\\(.*\\))\\'" arglist)
1416 (concat "(fn" (match-string 1 arglist) ")") 1416 (concat "(fn" (match-string 1 arglist) ")")
1417 (error "Unrecognized usage format")) 1417 (error "Unrecognized usage format"))
1418 (help--make-usage-docstring 'fn arglist))))) 1418 (help--make-usage-docstring 'fn arglist)))))
@@ -1485,7 +1485,8 @@ the same names as used in the original source code, when possible."
1485(define-obsolete-function-alias 'help-make-usage 'help--make-usage "25.1") 1485(define-obsolete-function-alias 'help-make-usage 'help--make-usage "25.1")
1486 1486
1487(defun help--make-usage-docstring (fn arglist) 1487(defun help--make-usage-docstring (fn arglist)
1488 (help--docstring-quote (format "%S" (help--make-usage fn arglist)))) 1488 (let ((print-escape-newlines t))
1489 (help--docstring-quote (format "%S" (help--make-usage fn arglist)))))
1489 1490
1490 1491
1491(provide 'help) 1492(provide 'help)
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 9265e38e4bc..508195996b6 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -1745,7 +1745,7 @@ This performs fontification according to `js--class-styles'."
1745 "Regular expression matching variable declaration keywords.") 1745 "Regular expression matching variable declaration keywords.")
1746 1746
1747(defconst js--indent-operator-re 1747(defconst js--indent-operator-re
1748 (concat "[-+*/%<>&^|?:.]\\([^-+*/]\\|$\\)\\|!?=\\|" 1748 (concat "[-+*/%<>&^|?:.]\\([^-+*/.]\\|$\\)\\|!?=\\|"
1749 (js--regexp-opt-symbol '("in" "instanceof"))) 1749 (js--regexp-opt-symbol '("in" "instanceof")))
1750 "Regexp matching operators that affect indentation of continued expressions.") 1750 "Regexp matching operators that affect indentation of continued expressions.")
1751 1751
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 972bf99145e..cd3b04de712 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1858,7 +1858,9 @@ It will be properly highlighted even when the call omits parens.")
1858 (string-to-syntax "'")))) 1858 (string-to-syntax "'"))))
1859 ;; Symbols with special characters. 1859 ;; Symbols with special characters.
1860 ("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\)\\)" 1860 ("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\)\\)"
1861 (3 (string-to-syntax "_"))) 1861 (3 (unless (nth 8 (syntax-ppss (match-beginning 3)))
1862 (goto-char (match-end 0))
1863 (string-to-syntax "_"))))
1862 ;; Part of method name when at the end of it. 1864 ;; Part of method name when at the end of it.
1863 ("[!?]" 1865 ("[!?]"
1864 (0 (unless (save-excursion 1866 (0 (unless (save-excursion
diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el
index 7e85fb83edd..52126a3bdf1 100644
--- a/test/lisp/progmodes/ruby-mode-tests.el
+++ b/test/lisp/progmodes/ruby-mode-tests.el
@@ -146,6 +146,9 @@ VALUES-PLIST is a list with alternating index and value elements."
146(ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp () 146(ert-deftest ruby-slash-char-literal-is-not-mistaken-for-regexp ()
147 (ruby-assert-state "?/" 3 nil)) 147 (ruby-assert-state "?/" 3 nil))
148 148
149(ert-deftest ruby-regexp-is-not-mistaken-for-slash-symbol ()
150 (ruby-assert-state "x = /foo:/" 3 nil))
151
149(ert-deftest ruby-indent-simple () 152(ert-deftest ruby-indent-simple ()
150 (ruby-should-indent-buffer 153 (ruby-should-indent-buffer
151 "if foo 154 "if foo
diff --git a/test/manual/indent/js.js b/test/manual/indent/js.js
index 23fae17b3ce..b40d47b3e5d 100644
--- a/test/manual/indent/js.js
+++ b/test/manual/indent/js.js
@@ -103,6 +103,12 @@ Foobar
103 console.log(num); 103 console.log(num);
104 }); 104 });
105 105
106var z = [
107 ...iterableObj,
108 4,
109 5
110]
111
106var arr = [ 112var arr = [
107 -1, 2, 113 -1, 2,
108 -3, 4 + 114 -3, 4 +