diff options
| author | Vibhav Pant | 2017-02-13 17:07:36 +0530 |
|---|---|---|
| committer | Vibhav Pant | 2017-02-13 17:07:36 +0530 |
| commit | cb410433e069b5bb450193353c3fea8593a643a9 (patch) | |
| tree | d2f4269781b4841e5a0c27ec57a5a4fbcec386c0 | |
| parent | e742450427007cdde242c11380dfe32a950fab61 (diff) | |
| parent | 4b18ef7ba3dd8aae4f3c3bf931365ef7da883baf (diff) | |
| download | emacs-feature/byte-switch.tar.gz emacs-feature/byte-switch.zip | |
Merge branch 'master' into feature/byte-switchfeature/byte-switch
| -rw-r--r-- | doc/lispref/os.texi | 4 | ||||
| -rw-r--r-- | lisp/allout.el | 5 | ||||
| -rw-r--r-- | lisp/bookmark.el | 8 | ||||
| -rw-r--r-- | lisp/buff-menu.el | 2 | ||||
| -rw-r--r-- | lisp/cus-edit.el | 4 | ||||
| -rw-r--r-- | lisp/cus-theme.el | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/autoload.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/checkdoc.el | 16 | ||||
| -rw-r--r-- | lisp/emacs-lisp/elint.el | 2 | ||||
| -rw-r--r-- | lisp/emulation/viper-cmd.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/mm-bodies.el | 22 | ||||
| -rw-r--r-- | lisp/image-dired.el | 4 | ||||
| -rw-r--r-- | lisp/international/mule-util.el | 10 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 25 | ||||
| -rw-r--r-- | lisp/progmodes/js.el | 43 | ||||
| -rw-r--r-- | lisp/progmodes/vhdl-mode.el | 3 | ||||
| -rw-r--r-- | lisp/replace.el | 40 | ||||
| -rw-r--r-- | lisp/server.el | 4 | ||||
| -rw-r--r-- | lisp/simple.el | 2 | ||||
| -rw-r--r-- | lisp/startup.el | 5 | ||||
| -rw-r--r-- | lisp/subr.el | 8 | ||||
| -rw-r--r-- | lisp/textmodes/css-mode.el | 6 | ||||
| -rw-r--r-- | lisp/time-stamp.el | 13 | ||||
| -rw-r--r-- | lisp/xdg.el | 11 | ||||
| -rw-r--r-- | test/lisp/progmodes/js-tests.el | 17 | ||||
| -rw-r--r-- | test/lisp/textmodes/css-mode-tests.el | 3 | ||||
| -rw-r--r-- | test/src/fns-tests.el | 18 |
28 files changed, 158 insertions, 127 deletions
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 553bb4a0068..178822b311e 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi | |||
| @@ -940,9 +940,7 @@ string. | |||
| 940 | If this variable is non-@code{nil}, it is used instead of | 940 | If this variable is non-@code{nil}, it is used instead of |
| 941 | @code{system-name} for purposes of generating email addresses. For | 941 | @code{system-name} for purposes of generating email addresses. For |
| 942 | example, it is used when constructing the default value of | 942 | example, it is used when constructing the default value of |
| 943 | @code{user-mail-address}. @xref{User Identification}. (Since this is | 943 | @code{user-mail-address}. @xref{User Identification}. |
| 944 | done when Emacs starts up, the value actually used is the one saved when | ||
| 945 | Emacs was dumped. @xref{Building Emacs}.) | ||
| 946 | @c FIXME sounds like should probably give this a :set-after and some | 944 | @c FIXME sounds like should probably give this a :set-after and some |
| 947 | @c custom-initialize-delay voodoo. | 945 | @c custom-initialize-delay voodoo. |
| 948 | @end defopt | 946 | @end defopt |
diff --git a/lisp/allout.el b/lisp/allout.el index 4a0aeeedf6a..e837f83ed38 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -4462,7 +4462,7 @@ Topic exposure is marked with text-properties, to be used by | |||
| 4462 | (if (and (/= (current-column) 0) (not (eobp))) | 4462 | (if (and (/= (current-column) 0) (not (eobp))) |
| 4463 | (forward-char 1)) | 4463 | (forward-char 1)) |
| 4464 | (if (not (eobp)) | 4464 | (if (not (eobp)) |
| 4465 | (if (and (save-match-data (looking-at "\n")) | 4465 | (if (and (= (following-char) ?\n) |
| 4466 | (or (save-excursion | 4466 | (or (save-excursion |
| 4467 | (or (not (allout-next-heading)) | 4467 | (or (not (allout-next-heading)) |
| 4468 | (= depth allout-recent-depth))) | 4468 | (= depth allout-recent-depth))) |
| @@ -6278,8 +6278,7 @@ It must also have content." | |||
| 6278 | (setq got nil | 6278 | (setq got nil |
| 6279 | done t) | 6279 | done t) |
| 6280 | (goto-char (setq got (match-beginning 0))) | 6280 | (goto-char (setq got (match-beginning 0))) |
| 6281 | (if (save-match-data (looking-at "\n")) | 6281 | (when (= (following-char) ?\n) (forward-char 1)) |
| 6282 | (forward-char 1)) | ||
| 6283 | (setq got (point))) | 6282 | (setq got (point))) |
| 6284 | 6283 | ||
| 6285 | (cond ((not got) | 6284 | (cond ((not got) |
diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 02dd8a9f6fc..5b8ded7b22a 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el | |||
| @@ -896,8 +896,8 @@ If optional arg NEWLINE-TOO is non-nil, delete the newline too. | |||
| 896 | Does not affect the kill ring." | 896 | Does not affect the kill ring." |
| 897 | (let ((eol (line-end-position))) | 897 | (let ((eol (line-end-position))) |
| 898 | (delete-region (point) eol) | 898 | (delete-region (point) eol) |
| 899 | (if (and newline-too (looking-at "\n")) | 899 | (when (and newline-too (= (following-char) ?\n)) |
| 900 | (delete-char 1)))) | 900 | (delete-char 1)))) |
| 901 | 901 | ||
| 902 | 902 | ||
| 903 | ;; Defvars to avoid compilation warnings: | 903 | ;; Defvars to avoid compilation warnings: |
| @@ -957,7 +957,7 @@ Lines beginning with `#' are ignored." | |||
| 957 | (error "Not in bookmark-edit-annotation-mode")) | 957 | (error "Not in bookmark-edit-annotation-mode")) |
| 958 | (goto-char (point-min)) | 958 | (goto-char (point-min)) |
| 959 | (while (< (point) (point-max)) | 959 | (while (< (point) (point-max)) |
| 960 | (if (looking-at "^#") | 960 | (if (= (following-char) ?#) |
| 961 | (bookmark-kill-line t) | 961 | (bookmark-kill-line t) |
| 962 | (forward-line 1))) | 962 | (forward-line 1))) |
| 963 | ;; Take no chances with text properties. | 963 | ;; Take no chances with text properties. |
| @@ -2064,7 +2064,7 @@ To carry out the deletions that you've marked, use \\<bookmark-bmenu-mode-map>\\ | |||
| 2064 | (let ((o-point (point)) | 2064 | (let ((o-point (point)) |
| 2065 | (o-str (save-excursion | 2065 | (o-str (save-excursion |
| 2066 | (beginning-of-line) | 2066 | (beginning-of-line) |
| 2067 | (unless (looking-at "^D") | 2067 | (unless (= (following-char) ?D) |
| 2068 | (buffer-substring | 2068 | (buffer-substring |
| 2069 | (point) | 2069 | (point) |
| 2070 | (progn (end-of-line) (point)))))) | 2070 | (progn (end-of-line) (point)))))) |
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 9f618bcb7de..83d6bb6b0e9 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; buff-menu.el --- Interface for viewing and manipulating buffers | 1 | ;;; buff-menu.el --- Interface for viewing and manipulating buffers -*- lexical-binding: t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1987, 1993-1995, 2000-2017 Free Software | 3 | ;; Copyright (C) 1985-1987, 1993-1995, 2000-2017 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 2b86051a726..fac9c77e12a 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -4581,7 +4581,7 @@ This function does not save the buffer." | |||
| 4581 | (if (bolp) | 4581 | (if (bolp) |
| 4582 | (princ " ")) | 4582 | (princ " ")) |
| 4583 | (princ ")") | 4583 | (princ ")") |
| 4584 | (unless (looking-at-p "\n") | 4584 | (when (/= (following-char) ?\n) |
| 4585 | (princ "\n"))))) | 4585 | (princ "\n"))))) |
| 4586 | 4586 | ||
| 4587 | (defun custom-save-faces () | 4587 | (defun custom-save-faces () |
| @@ -4636,7 +4636,7 @@ This function does not save the buffer." | |||
| 4636 | (if (bolp) | 4636 | (if (bolp) |
| 4637 | (princ " ")) | 4637 | (princ " ")) |
| 4638 | (princ ")") | 4638 | (princ ")") |
| 4639 | (unless (looking-at-p "\n") | 4639 | (when (/= (following-char) ?\n) |
| 4640 | (princ "\n"))))) | 4640 | (princ "\n"))))) |
| 4641 | 4641 | ||
| 4642 | ;;; The Customize Menu. | 4642 | ;;; The Customize Menu. |
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index c5682add23a..d2ee14d8bdf 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el | |||
| @@ -431,7 +431,7 @@ It includes all variables in list VARS." | |||
| 431 | (if (bolp) | 431 | (if (bolp) |
| 432 | (princ " ")) | 432 | (princ " ")) |
| 433 | (princ ")") | 433 | (princ ")") |
| 434 | (unless (looking-at "\n") | 434 | (when (/= (following-char) ?\n) |
| 435 | (princ "\n"))))) | 435 | (princ "\n"))))) |
| 436 | 436 | ||
| 437 | (defun custom-theme-write-faces (theme faces) | 437 | (defun custom-theme-write-faces (theme faces) |
| @@ -463,7 +463,7 @@ It includes all faces in list FACES." | |||
| 463 | (princ ")"))))) | 463 | (princ ")"))))) |
| 464 | (if (bolp) (princ " ")) | 464 | (if (bolp) (princ " ")) |
| 465 | (princ ")") | 465 | (princ ")") |
| 466 | (unless (looking-at "\n") | 466 | (when (/= (following-char) ?\n) |
| 467 | (princ "\n"))))) | 467 | (princ "\n"))))) |
| 468 | 468 | ||
| 469 | 469 | ||
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index ca1d75176dc..1b7ff36f422 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el | |||
| @@ -748,7 +748,7 @@ FILE's modification time." | |||
| 748 | (setq output-start (autoload--setup-output | 748 | (setq output-start (autoload--setup-output |
| 749 | otherbuf outbuf absfile load-name))) | 749 | otherbuf outbuf absfile load-name))) |
| 750 | (autoload--print-cookie-text output-start load-name file)) | 750 | (autoload--print-cookie-text output-start load-name file)) |
| 751 | ((looking-at ";") | 751 | ((= (following-char) ?\;) |
| 752 | ;; Don't read the comment. | 752 | ;; Don't read the comment. |
| 753 | (forward-line 1)) | 753 | (forward-line 1)) |
| 754 | (t | 754 | (t |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 6e8442291f8..75e6b904aa6 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -2013,7 +2013,7 @@ With argument ARG, insert value in current buffer after the form." | |||
| 2013 | ;; Compile the forms from the input buffer. | 2013 | ;; Compile the forms from the input buffer. |
| 2014 | (while (progn | 2014 | (while (progn |
| 2015 | (while (progn (skip-chars-forward " \t\n\^l") | 2015 | (while (progn (skip-chars-forward " \t\n\^l") |
| 2016 | (looking-at ";")) | 2016 | (= (following-char) ?\;)) |
| 2017 | (forward-line 1)) | 2017 | (forward-line 1)) |
| 2018 | (not (eobp))) | 2018 | (not (eobp))) |
| 2019 | (setq byte-compile-read-position (point) | 2019 | (setq byte-compile-read-position (point) |
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 59edbe100e1..1d6fdfa4e87 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el | |||
| @@ -603,7 +603,7 @@ style." | |||
| 603 | (checkdoc-overlay-put cdo 'face 'highlight) | 603 | (checkdoc-overlay-put cdo 'face 'highlight) |
| 604 | ;; Make sure the whole doc string is visible if possible. | 604 | ;; Make sure the whole doc string is visible if possible. |
| 605 | (sit-for 0) | 605 | (sit-for 0) |
| 606 | (if (and (looking-at "\"") | 606 | (if (and (= (following-char) ?\") |
| 607 | (not (pos-visible-in-window-p | 607 | (not (pos-visible-in-window-p |
| 608 | (save-excursion (forward-sexp 1) (point)) | 608 | (save-excursion (forward-sexp 1) (point)) |
| 609 | (selected-window)))) | 609 | (selected-window)))) |
| @@ -743,9 +743,9 @@ buffer, otherwise searching starts at START-HERE." | |||
| 743 | (while (checkdoc-next-docstring) | 743 | (while (checkdoc-next-docstring) |
| 744 | (message "Searching for doc string spell error...%d%%" | 744 | (message "Searching for doc string spell error...%d%%" |
| 745 | (floor (* 100.0 (point)) (point-max))) | 745 | (floor (* 100.0 (point)) (point-max))) |
| 746 | (if (looking-at "\"") | 746 | (when (= (following-char) ?\") |
| 747 | (checkdoc-ispell-docstring-engine | 747 | (checkdoc-ispell-docstring-engine |
| 748 | (save-excursion (forward-sexp 1) (point-marker))))) | 748 | (save-excursion (forward-sexp 1) (point-marker))))) |
| 749 | (message "Checkdoc: Done.")))) | 749 | (message "Checkdoc: Done.")))) |
| 750 | 750 | ||
| 751 | (defun checkdoc-message-interactive-ispell-loop (start-here) | 751 | (defun checkdoc-message-interactive-ispell-loop (start-here) |
| @@ -763,7 +763,7 @@ buffer, otherwise searching starts at START-HERE." | |||
| 763 | (while (checkdoc-message-text-next-string (point-max)) | 763 | (while (checkdoc-message-text-next-string (point-max)) |
| 764 | (message "Searching for message string spell error...%d%%" | 764 | (message "Searching for message string spell error...%d%%" |
| 765 | (floor (* 100.0 (point)) (point-max))) | 765 | (floor (* 100.0 (point)) (point-max))) |
| 766 | (if (looking-at "\"") | 766 | (if (= (following-char) ?\") |
| 767 | (checkdoc-ispell-docstring-engine | 767 | (checkdoc-ispell-docstring-engine |
| 768 | (save-excursion (forward-sexp 1) (point-marker))))) | 768 | (save-excursion (forward-sexp 1) (point-marker))))) |
| 769 | (message "Checkdoc: Done.")))) | 769 | (message "Checkdoc: Done.")))) |
| @@ -1381,7 +1381,7 @@ See the style guide in the Emacs Lisp manual for more details." | |||
| 1381 | "All variables and subroutines might as well have a \ | 1381 | "All variables and subroutines might as well have a \ |
| 1382 | documentation string") | 1382 | documentation string") |
| 1383 | (point) (+ (point) 1) t))))) | 1383 | (point) (+ (point) 1) t))))) |
| 1384 | (if (and (not err) (looking-at "\"")) | 1384 | (if (and (not err) (= (following-char) ?\")) |
| 1385 | (with-syntax-table checkdoc-syntax-table | 1385 | (with-syntax-table checkdoc-syntax-table |
| 1386 | (checkdoc-this-string-valid-engine fp)) | 1386 | (checkdoc-this-string-valid-engine fp)) |
| 1387 | err))) | 1387 | err))) |
| @@ -1395,7 +1395,7 @@ regexp short cuts work. FP is the function defun information." | |||
| 1395 | ;; we won't accidentally lose our place. This could cause | 1395 | ;; we won't accidentally lose our place. This could cause |
| 1396 | ;; end-of doc string whitespace to also delete the " char. | 1396 | ;; end-of doc string whitespace to also delete the " char. |
| 1397 | (s (point)) | 1397 | (s (point)) |
| 1398 | (e (if (looking-at "\"") | 1398 | (e (if (= (following-char) ?\") |
| 1399 | (save-excursion (forward-sexp 1) (point-marker)) | 1399 | (save-excursion (forward-sexp 1) (point-marker)) |
| 1400 | (point)))) | 1400 | (point)))) |
| 1401 | (or | 1401 | (or |
| @@ -1475,7 +1475,7 @@ regexp short cuts work. FP is the function defun information." | |||
| 1475 | ((looking-at "[\\!?;:.)]") | 1475 | ((looking-at "[\\!?;:.)]") |
| 1476 | ;; These are ok | 1476 | ;; These are ok |
| 1477 | nil) | 1477 | nil) |
| 1478 | ((and checkdoc-permit-comma-termination-flag (looking-at ",")) | 1478 | ((and checkdoc-permit-comma-termination-flag (= (following-char) ?,)) |
| 1479 | nil) | 1479 | nil) |
| 1480 | (t | 1480 | (t |
| 1481 | ;; If it is not a complete sentence, let's see if we can | 1481 | ;; If it is not a complete sentence, let's see if we can |
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index d68e49fa4b2..f5e10a24d37 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el | |||
| @@ -372,7 +372,7 @@ Returns the forms." | |||
| 372 | (let ((elint-current-pos (point))) | 372 | (let ((elint-current-pos (point))) |
| 373 | ;; non-list check could be here too. errors may be out of seq. | 373 | ;; non-list check could be here too. errors may be out of seq. |
| 374 | ;; quoted check cannot be elsewhere, since quotes skipped. | 374 | ;; quoted check cannot be elsewhere, since quotes skipped. |
| 375 | (if (looking-back "'" (1- (point))) | 375 | (if (= (preceding-char) ?\') |
| 376 | ;; Eg cust-print.el uses ' as a comment syntax. | 376 | ;; Eg cust-print.el uses ' as a comment syntax. |
| 377 | (elint-warning "Skipping quoted form `%c%.20s...'" ?\' | 377 | (elint-warning "Skipping quoted form `%c%.20s...'" ?\' |
| 378 | (read (current-buffer))) | 378 | (read (current-buffer))) |
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 86364282dcf..aa31fac32cc 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el | |||
| @@ -4520,7 +4520,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily jump 1 step back." | |||
| 4520 | (interactive) | 4520 | (interactive) |
| 4521 | (if viper-cted | 4521 | (if viper-cted |
| 4522 | (let ((p (point)) (c (current-column)) bol (indent t)) | 4522 | (let ((p (point)) (c (current-column)) bol (indent t)) |
| 4523 | (if (looking-back "[0^]" (1- (point))) | 4523 | (if (memq (preceding-char) '(?0 ?^)) |
| 4524 | (progn | 4524 | (progn |
| 4525 | (if (eq ?^ (preceding-char)) | 4525 | (if (eq ?^ (preceding-char)) |
| 4526 | (setq viper-preserve-indent t)) | 4526 | (setq viper-preserve-indent t)) |
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index 66b9ebd0cfc..d773289722f 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el | |||
| @@ -68,14 +68,14 @@ Valid encodings are `7bit', `8bit', `quoted-printable' and `base64'." | |||
| 68 | (declare-function message-options-set "message" (symbol value)) | 68 | (declare-function message-options-set "message" (symbol value)) |
| 69 | 69 | ||
| 70 | (defun mm-encode-body (&optional charset) | 70 | (defun mm-encode-body (&optional charset) |
| 71 | "Encode a body. | 71 | "Encode whole buffer's contents. |
| 72 | Should be called narrowed to the body that is to be encoded. | 72 | Buffer's multibyteness will be turned off when encoding takes place. |
| 73 | If there is more than one non-ASCII MULE charset in the body, then the | 73 | If there is more than one non-ASCII MULE charset in the body, then the |
| 74 | list of MULE charsets found is returned. | 74 | list of MULE charsets found is returned. |
| 75 | If CHARSET is non-nil, it is used as the MIME charset to encode the body. | 75 | If CHARSET is non-nil, it is used as the MIME charset to encode the body. |
| 76 | If successful, the MIME charset is returned. | 76 | If successful, the MIME charset is returned. |
| 77 | If no encoding was done, nil is returned." | 77 | If no encoding was done, nil is returned." |
| 78 | (if (not (mm-multibyte-p)) | 78 | (if (not enable-multibyte-characters) |
| 79 | ;; In the non-Mule case, we search for non-ASCII chars and | 79 | ;; In the non-Mule case, we search for non-ASCII chars and |
| 80 | ;; return the value of `mail-parse-charset' if any are found. | 80 | ;; return the value of `mail-parse-charset' if any are found. |
| 81 | (or charset | 81 | (or charset |
| @@ -93,8 +93,12 @@ If no encoding was done, nil is returned." | |||
| 93 | (save-excursion | 93 | (save-excursion |
| 94 | (if charset | 94 | (if charset |
| 95 | (progn | 95 | (progn |
| 96 | (encode-coding-region (point-min) (point-max) | 96 | (insert |
| 97 | (mm-charset-to-coding-system charset)) | 97 | (prog1 |
| 98 | (encode-coding-string (buffer-string) | ||
| 99 | (mm-charset-to-coding-system charset)) | ||
| 100 | (erase-buffer) | ||
| 101 | (set-buffer-multibyte nil))) | ||
| 98 | charset) | 102 | charset) |
| 99 | (goto-char (point-min)) | 103 | (goto-char (point-min)) |
| 100 | (let ((charsets (mm-find-mime-charset-region (point-min) (point-max) | 104 | (let ((charsets (mm-find-mime-charset-region (point-min) (point-max) |
| @@ -110,8 +114,12 @@ If no encoding was done, nil is returned." | |||
| 110 | (t | 114 | (t |
| 111 | (prog1 | 115 | (prog1 |
| 112 | (setq charset (car charsets)) | 116 | (setq charset (car charsets)) |
| 113 | (encode-coding-region (point-min) (point-max) | 117 | (insert |
| 114 | (mm-charset-to-coding-system charset)))) | 118 | (prog1 |
| 119 | (encode-coding-string (buffer-string) | ||
| 120 | (mm-charset-to-coding-system charset)) | ||
| 121 | (erase-buffer) | ||
| 122 | (set-buffer-multibyte nil))))) | ||
| 115 | )))))) | 123 | )))))) |
| 116 | 124 | ||
| 117 | (defun mm-long-lines-p (length) | 125 | (defun mm-long-lines-p (length) |
diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 2a4064560a7..49dba52c884 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el | |||
| @@ -1751,8 +1751,8 @@ Ask user for number of images to show and the delay in between." | |||
| 1751 | (interactive) | 1751 | (interactive) |
| 1752 | (let ((inhibit-read-only t)) | 1752 | (let ((inhibit-read-only t)) |
| 1753 | (delete-char 1) | 1753 | (delete-char 1) |
| 1754 | (if (looking-at " ") | 1754 | (when (= (following-char) ?\s) |
| 1755 | (delete-char 1)))) | 1755 | (delete-char 1)))) |
| 1756 | 1756 | ||
| 1757 | ;;;###autoload | 1757 | ;;;###autoload |
| 1758 | (defun image-dired-display-thumbs-append () | 1758 | (defun image-dired-display-thumbs-append () |
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index 06b63eae370..92a658655ac 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el | |||
| @@ -33,16 +33,6 @@ | |||
| 33 | ;;; String manipulations while paying attention to multibyte characters. | 33 | ;;; String manipulations while paying attention to multibyte characters. |
| 34 | 34 | ||
| 35 | ;;;###autoload | 35 | ;;;###autoload |
| 36 | (defsubst string-to-list (string) | ||
| 37 | "Return a list of characters in STRING." | ||
| 38 | (append string nil)) | ||
| 39 | |||
| 40 | ;;;###autoload | ||
| 41 | (defsubst string-to-vector (string) | ||
| 42 | "Return a vector of characters in STRING." | ||
| 43 | (vconcat string)) | ||
| 44 | |||
| 45 | ;;;###autoload | ||
| 46 | (defun store-substring (string idx obj) | 36 | (defun store-substring (string idx obj) |
| 47 | "Embed OBJ (string or character) at index IDX of STRING." | 37 | "Embed OBJ (string or character) at index IDX of STRING." |
| 48 | (if (integerp obj) | 38 | (if (integerp obj) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 48dcd5edd11..4b5bd472632 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2133,9 +2133,13 @@ preventing reentrant calls of Tramp.") | |||
| 2133 | Together with `tramp-locked', this implements a locking mechanism | 2133 | Together with `tramp-locked', this implements a locking mechanism |
| 2134 | preventing reentrant calls of Tramp.") | 2134 | preventing reentrant calls of Tramp.") |
| 2135 | 2135 | ||
| 2136 | ;; Avoid recursive loading of tramp.el. | 2136 | ;; Avoid recursive loading of tramp.el. If `non-essential' is |
| 2137 | ;; non-nil, we must load tramp.el, in order to get the real definition | ||
| 2138 | ;; of `tramp-completion-file-name-handler'. | ||
| 2137 | ;;;###autoload(defun tramp-completion-file-name-handler (operation &rest args) | 2139 | ;;;###autoload(defun tramp-completion-file-name-handler (operation &rest args) |
| 2138 | ;;;###autoload (tramp-completion-run-real-handler operation args)) | 2140 | ;;;###autoload (if (and (boundp 'non-essential) (symbol-value 'non-essential)) |
| 2141 | ;;;###autoload (apply 'tramp-autoload-file-name-handler operation args) | ||
| 2142 | ;;;###autoload (tramp-completion-run-real-handler operation args))) | ||
| 2139 | 2143 | ||
| 2140 | (defun tramp-completion-file-name-handler (operation &rest args) | 2144 | (defun tramp-completion-file-name-handler (operation &rest args) |
| 2141 | "Invoke Tramp file name completion handler. | 2145 | "Invoke Tramp file name completion handler. |
| @@ -2165,9 +2169,11 @@ Falls back to normal file name handler if no Tramp file name handler exists." | |||
| 2165 | (progn (defun tramp-autoload-file-name-handler (operation &rest args) | 2169 | (progn (defun tramp-autoload-file-name-handler (operation &rest args) |
| 2166 | "Load Tramp file name handler, and perform OPERATION." | 2170 | "Load Tramp file name handler, and perform OPERATION." |
| 2167 | ;; Avoid recursive loading of tramp.el. | 2171 | ;; Avoid recursive loading of tramp.el. |
| 2168 | (let ((default-directory temporary-file-directory)) | 2172 | (if (let ((default-directory temporary-file-directory)) |
| 2169 | (load "tramp" nil t)) | 2173 | (and (null load-in-progress) (load "tramp" 'noerror 'nomessage))) |
| 2170 | (apply operation args))) | 2174 | (apply operation args) |
| 2175 | ;; tramp.el not available for loading, fall back. | ||
| 2176 | (tramp-completion-run-real-handler operation args)))) | ||
| 2171 | 2177 | ||
| 2172 | ;; `tramp-autoload-file-name-handler' must be registered before | 2178 | ;; `tramp-autoload-file-name-handler' must be registered before |
| 2173 | ;; evaluation of site-start and init files, because there might exist | 2179 | ;; evaluation of site-start and init files, because there might exist |
| @@ -2307,11 +2313,10 @@ not in completion mode." | |||
| 2307 | (progn | 2313 | (progn |
| 2308 | ;; If DIR is not given, use `default-directory' or "/". | 2314 | ;; If DIR is not given, use `default-directory' or "/". |
| 2309 | (setq dir (or dir default-directory "/")) | 2315 | (setq dir (or dir default-directory "/")) |
| 2310 | ;; Unless NAME is absolute, concat DIR and NAME. | 2316 | (cond |
| 2311 | (unless (file-name-absolute-p name) | 2317 | ((file-name-absolute-p name) name) |
| 2312 | (setq name (concat (file-name-as-directory dir) name))) | 2318 | ((zerop (length name)) dir) |
| 2313 | ;; Return NAME. | 2319 | (t (concat (file-name-as-directory dir) name)))) |
| 2314 | name) | ||
| 2315 | 2320 | ||
| 2316 | (tramp-completion-run-real-handler | 2321 | (tramp-completion-run-real-handler |
| 2317 | 'expand-file-name (list name dir)))) | 2322 | 'expand-file-name (list name dir)))) |
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index e42e01481b6..b42b2bca822 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el | |||
| @@ -1687,29 +1687,36 @@ This performs fontification according to `js--class-styles'." | |||
| 1687 | js--font-lock-keywords-3) | 1687 | js--font-lock-keywords-3) |
| 1688 | "Font lock keywords for `js-mode'. See `font-lock-keywords'.") | 1688 | "Font lock keywords for `js-mode'. See `font-lock-keywords'.") |
| 1689 | 1689 | ||
| 1690 | (defconst js--syntax-propertize-regexp-syntax-table | 1690 | (defconst js--syntax-propertize-regexp-regexp |
| 1691 | (let ((st (make-char-table 'syntax-table (string-to-syntax ".")))) | 1691 | (rx |
| 1692 | (modify-syntax-entry ?\[ "(]" st) | 1692 | ;; Start of regexp. |
| 1693 | (modify-syntax-entry ?\] ")[" st) | 1693 | "/" |
| 1694 | (modify-syntax-entry ?\\ "\\" st) | 1694 | (0+ (or |
| 1695 | st)) | 1695 | ;; Match characters outside of a character class. |
| 1696 | (not (any ?\[ ?/ ?\\)) | ||
| 1697 | ;; Match backslash quoted characters. | ||
| 1698 | (and "\\" not-newline) | ||
| 1699 | ;; Match character class. | ||
| 1700 | (and | ||
| 1701 | "[" | ||
| 1702 | (0+ (or | ||
| 1703 | (not (any ?\] ?\\)) | ||
| 1704 | (and "\\" not-newline))) | ||
| 1705 | "]"))) | ||
| 1706 | (group "/")) | ||
| 1707 | "Regular expression matching a JavaScript regexp literal.") | ||
| 1696 | 1708 | ||
| 1697 | (defun js-syntax-propertize-regexp (end) | 1709 | (defun js-syntax-propertize-regexp (end) |
| 1698 | (let ((ppss (syntax-ppss))) | 1710 | (let ((ppss (syntax-ppss))) |
| 1699 | (when (eq (nth 3 ppss) ?/) | 1711 | (when (eq (nth 3 ppss) ?/) |
| 1700 | ;; A /.../ regexp. | 1712 | ;; A /.../ regexp. |
| 1701 | (while | 1713 | (goto-char (nth 8 ppss)) |
| 1702 | (when (re-search-forward "\\(?:\\=\\|[^\\]\\)\\(?:\\\\\\\\\\)*/" | 1714 | (when (and (looking-at js--syntax-propertize-regexp-regexp) |
| 1703 | end 'move) | 1715 | ;; Don't touch text after END. |
| 1704 | (if (nth 1 (with-syntax-table | 1716 | (<= (match-end 1) end)) |
| 1705 | js--syntax-propertize-regexp-syntax-table | 1717 | (put-text-property (match-beginning 1) (match-end 1) |
| 1706 | (let ((parse-sexp-lookup-properties nil)) | 1718 | 'syntax-table (string-to-syntax "\"/")) |
| 1707 | (parse-partial-sexp (nth 8 ppss) (point))))) | 1719 | (goto-char (match-end 0)))))) |
| 1708 | ;; A / within a character class is not the end of a regexp. | ||
| 1709 | t | ||
| 1710 | (put-text-property (1- (point)) (point) | ||
| 1711 | 'syntax-table (string-to-syntax "\"/")) | ||
| 1712 | nil)))))) | ||
| 1713 | 1720 | ||
| 1714 | (defun js-syntax-propertize (start end) | 1721 | (defun js-syntax-propertize (start end) |
| 1715 | ;; JavaScript allows immediate regular expression objects, written /.../. | 1722 | ;; JavaScript allows immediate regular expression objects, written /.../. |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 6c76d7e4ad2..06ffd54d2df 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -1010,7 +1010,7 @@ if the header needs to be version controlled. | |||
| 1010 | The following keywords for template generation are supported: | 1010 | The following keywords for template generation are supported: |
| 1011 | <filename> : replaced by the name of the buffer | 1011 | <filename> : replaced by the name of the buffer |
| 1012 | <author> : replaced by the user name and email address | 1012 | <author> : replaced by the user name and email address |
| 1013 | (`user-full-name',`mail-host-address', `user-mail-address') | 1013 | (`user-full-name', `user-mail-address') |
| 1014 | <authorfull> : replaced by the user full name (`user-full-name') | 1014 | <authorfull> : replaced by the user full name (`user-full-name') |
| 1015 | <login> : replaced by user login name (`user-login-name') | 1015 | <login> : replaced by user login name (`user-login-name') |
| 1016 | <company> : replaced by contents of option `vhdl-company-name' | 1016 | <company> : replaced by contents of option `vhdl-company-name' |
| @@ -1967,7 +1967,6 @@ are treated as single words otherwise." | |||
| 1967 | (unless (featurep 'xemacs) | 1967 | (unless (featurep 'xemacs) |
| 1968 | (custom-add-to-group 'vhdl-related 'transient-mark-mode 'custom-variable)) | 1968 | (custom-add-to-group 'vhdl-related 'transient-mark-mode 'custom-variable)) |
| 1969 | (custom-add-to-group 'vhdl-related 'user-full-name 'custom-variable) | 1969 | (custom-add-to-group 'vhdl-related 'user-full-name 'custom-variable) |
| 1970 | (custom-add-to-group 'vhdl-related 'mail-host-address 'custom-variable) | ||
| 1971 | (custom-add-to-group 'vhdl-related 'user-mail-address 'custom-variable) | 1970 | (custom-add-to-group 'vhdl-related 'user-mail-address 'custom-variable) |
| 1972 | 1971 | ||
| 1973 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 1972 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
diff --git a/lisp/replace.el b/lisp/replace.el index a825040a979..b96c883982e 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -79,15 +79,14 @@ That becomes the \"string to replace\".") | |||
| 79 | to the minibuffer that reads the string to replace, or invoke replacements | 79 | to the minibuffer that reads the string to replace, or invoke replacements |
| 80 | from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") | 80 | from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") |
| 81 | 81 | ||
| 82 | (defcustom query-replace-from-to-separator | 82 | (defcustom query-replace-from-to-separator " → " |
| 83 | (propertize (if (char-displayable-p ?→) " → " " -> ") | 83 | "String that separates FROM and TO in the history of replacement pairs. |
| 84 | 'face 'minibuffer-prompt) | 84 | When nil, the pair will not be added to the history (same behavior |
| 85 | "String that separates FROM and TO in the history of replacement pairs." | 85 | as in emacs 24.5)." |
| 86 | ;; Avoids error when attempt to autoload char-displayable-p fails | ||
| 87 | ;; while preparing to dump, also stops customize-rogue listing this. | ||
| 88 | :initialize 'custom-initialize-delay | ||
| 89 | :group 'matching | 86 | :group 'matching |
| 90 | :type '(choice string (sexp :tag "Display specification")) | 87 | :type '(choice |
| 88 | (const :tag "Disabled" nil) | ||
| 89 | string) | ||
| 91 | :version "25.1") | 90 | :version "25.1") |
| 92 | 91 | ||
| 93 | (defcustom query-replace-from-history-variable 'query-replace-history | 92 | (defcustom query-replace-from-history-variable 'query-replace-history |
| @@ -165,14 +164,18 @@ The return value can also be a pair (FROM . TO) indicating that the user | |||
| 165 | wants to replace FROM with TO." | 164 | wants to replace FROM with TO." |
| 166 | (if query-replace-interactive | 165 | (if query-replace-interactive |
| 167 | (car (if regexp-flag regexp-search-ring search-ring)) | 166 | (car (if regexp-flag regexp-search-ring search-ring)) |
| 168 | ;; Reevaluating will check char-displayable-p that is | ||
| 169 | ;; unavailable while preparing to dump. | ||
| 170 | (custom-reevaluate-setting 'query-replace-from-to-separator) | ||
| 171 | (let* ((history-add-new-input nil) | 167 | (let* ((history-add-new-input nil) |
| 172 | (separator | 168 | (separator |
| 173 | (when query-replace-from-to-separator | 169 | (when query-replace-from-to-separator |
| 174 | (propertize "\0" | 170 | (propertize "\0" |
| 175 | 'display query-replace-from-to-separator | 171 | 'display |
| 172 | (propertize | ||
| 173 | (if (char-displayable-p | ||
| 174 | (string-to-char (replace-regexp-in-string | ||
| 175 | " " "" query-replace-from-to-separator))) | ||
| 176 | query-replace-from-to-separator | ||
| 177 | " -> ") | ||
| 178 | 'face 'minibuffer-prompt) | ||
| 176 | 'separator t))) | 179 | 'separator t))) |
| 177 | (minibuffer-history | 180 | (minibuffer-history |
| 178 | (append | 181 | (append |
| @@ -185,9 +188,13 @@ wants to replace FROM with TO." | |||
| 185 | (symbol-value query-replace-from-history-variable))) | 188 | (symbol-value query-replace-from-history-variable))) |
| 186 | (minibuffer-allow-text-properties t) ; separator uses text-properties | 189 | (minibuffer-allow-text-properties t) ; separator uses text-properties |
| 187 | (prompt | 190 | (prompt |
| 188 | (if (and query-replace-defaults separator) | 191 | (cond ((and query-replace-defaults separator) |
| 189 | (format "%s (default %s): " prompt (car minibuffer-history)) | 192 | (format "%s (default %s): " prompt (car minibuffer-history))) |
| 190 | (format "%s: " prompt))) | 193 | (query-replace-defaults |
| 194 | (format "%s (default %s -> %s): " prompt | ||
| 195 | (query-replace-descr (caar query-replace-defaults)) | ||
| 196 | (query-replace-descr (cdar query-replace-defaults)))) | ||
| 197 | (t (format "%s: " prompt)))) | ||
| 191 | (from | 198 | (from |
| 192 | ;; The save-excursion here is in case the user marks and copies | 199 | ;; The save-excursion here is in case the user marks and copies |
| 193 | ;; a region in order to specify the minibuffer input. | 200 | ;; a region in order to specify the minibuffer input. |
| @@ -200,8 +207,7 @@ wants to replace FROM with TO." | |||
| 200 | (if regexp-flag | 207 | (if regexp-flag |
| 201 | (read-regexp prompt nil 'minibuffer-history) | 208 | (read-regexp prompt nil 'minibuffer-history) |
| 202 | (read-from-minibuffer | 209 | (read-from-minibuffer |
| 203 | prompt nil nil nil nil | 210 | prompt nil nil nil nil (car search-ring) t))))) |
| 204 | (car (if regexp-flag regexp-search-ring search-ring)) t))))) | ||
| 205 | (to)) | 211 | (to)) |
| 206 | (if (and (zerop (length from)) query-replace-defaults) | 212 | (if (and (zerop (length from)) query-replace-defaults) |
| 207 | (cons (caar query-replace-defaults) | 213 | (cons (caar query-replace-defaults) |
diff --git a/lisp/server.el b/lisp/server.el index 1d26caef89c..209bfaaf701 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -245,10 +245,6 @@ in this way." | |||
| 245 | :type 'boolean | 245 | :type 'boolean |
| 246 | :version "21.1") | 246 | :version "21.1") |
| 247 | 247 | ||
| 248 | ;; FIXME? This is not a minor mode; what's the point of this? (See bug#20201) | ||
| 249 | (or (assq 'server-buffer-clients minor-mode-alist) | ||
| 250 | (push '(server-buffer-clients " Server") minor-mode-alist)) | ||
| 251 | |||
| 252 | (defvar server-existing-buffer nil | 248 | (defvar server-existing-buffer nil |
| 253 | "Non-nil means the buffer existed before the server was asked to visit it. | 249 | "Non-nil means the buffer existed before the server was asked to visit it. |
| 254 | This means that the server should not kill the buffer when you say you | 250 | This means that the server should not kill the buffer when you say you |
diff --git a/lisp/simple.el b/lisp/simple.el index c0dad2d36e7..f110c6f3267 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -6665,7 +6665,7 @@ even beep.)" | |||
| 6665 | ;; whether the trailing whitespace is highlighted. But, it's | 6665 | ;; whether the trailing whitespace is highlighted. But, it's |
| 6666 | ;; OK to just do this unconditionally. | 6666 | ;; OK to just do this unconditionally. |
| 6667 | (skip-chars-forward " \t"))) | 6667 | (skip-chars-forward " \t"))) |
| 6668 | (kill-region opoint (if (and kill-whole-line (looking-at "\n")) | 6668 | (kill-region opoint (if (and kill-whole-line (= (following-char) ?\n)) |
| 6669 | (1+ (point)) | 6669 | (1+ (point)) |
| 6670 | (point))))) | 6670 | (point))))) |
| 6671 | 6671 | ||
diff --git a/lisp/startup.el b/lisp/startup.el index 91e7e36dd65..4272708ce9a 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -376,9 +376,8 @@ this variable usefully is to set it while building and dumping Emacs." | |||
| 376 | (make-obsolete-variable 'system-name "use (system-name) instead" "25.1") | 376 | (make-obsolete-variable 'system-name "use (system-name) instead" "25.1") |
| 377 | 377 | ||
| 378 | (defcustom mail-host-address nil | 378 | (defcustom mail-host-address nil |
| 379 | "Name of this machine, for purposes of naming users. | 379 | "The name of this machine, for use in constructing email addresses. |
| 380 | If non-nil, Emacs uses this instead of `system-name' when constructing | 380 | If this is nil, Emacs uses `system-name'." |
| 381 | email addresses." | ||
| 382 | :type '(choice (const nil) string) | 381 | :type '(choice (const nil) string) |
| 383 | :group 'mail) | 382 | :group 'mail) |
| 384 | 383 | ||
diff --git a/lisp/subr.el b/lisp/subr.el index a204577ddf9..4f848d1400c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -2875,6 +2875,14 @@ See Info node `(elisp)Security Considerations'." | |||
| 2875 | (replace-regexp-in-string "[^-0-9a-zA-Z_./\n]" "\\\\\\&" argument)))) | 2875 | (replace-regexp-in-string "[^-0-9a-zA-Z_./\n]" "\\\\\\&" argument)))) |
| 2876 | )) | 2876 | )) |
| 2877 | 2877 | ||
| 2878 | (defsubst string-to-list (string) | ||
| 2879 | "Return a list of characters in STRING." | ||
| 2880 | (append string nil)) | ||
| 2881 | |||
| 2882 | (defsubst string-to-vector (string) | ||
| 2883 | "Return a vector of characters in STRING." | ||
| 2884 | (vconcat string)) | ||
| 2885 | |||
| 2878 | (defun string-or-null-p (object) | 2886 | (defun string-or-null-p (object) |
| 2879 | "Return t if OBJECT is a string or nil. | 2887 | "Return t if OBJECT is a string or nil. |
| 2880 | Otherwise, return nil." | 2888 | Otherwise, return nil." |
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 19746c68e6a..cd86db639ab 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el | |||
| @@ -1190,8 +1190,10 @@ to look up will be substituted there." | |||
| 1190 | "A helper for `css-lookup-symbol' that finds the symbol at point. | 1190 | "A helper for `css-lookup-symbol' that finds the symbol at point. |
| 1191 | Returns the symbol, a string, or nil if none found." | 1191 | Returns the symbol, a string, or nil if none found." |
| 1192 | (save-excursion | 1192 | (save-excursion |
| 1193 | ;; Skip backward over a word first. | 1193 | ;; Skip any whitespace between the word and point. |
| 1194 | (skip-chars-backward "-[:alnum:] \t") | 1194 | (skip-chars-backward "- \t") |
| 1195 | ;; Skip backward over a word. | ||
| 1196 | (skip-chars-backward "-[:alnum:]") | ||
| 1195 | ;; Now skip ":" or "@" to see if it's a pseudo-element or at-id. | 1197 | ;; Now skip ":" or "@" to see if it's a pseudo-element or at-id. |
| 1196 | (skip-chars-backward "@:") | 1198 | (skip-chars-backward "@:") |
| 1197 | (if (looking-at css--mdn-symbol-regexp) | 1199 | (if (looking-at css--mdn-symbol-regexp) |
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index 20b6c3f83b7..fa7621bcd46 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el | |||
| @@ -569,7 +569,7 @@ and all `time-stamp-format' compatibility." | |||
| 569 | ((eq cur-char ?L) ;(undocumented alt user full name) | 569 | ((eq cur-char ?L) ;(undocumented alt user full name) |
| 570 | (user-full-name)) | 570 | (user-full-name)) |
| 571 | ((eq cur-char ?h) ;mail host name | 571 | ((eq cur-char ?h) ;mail host name |
| 572 | (time-stamp-mail-host-name)) | 572 | (or mail-host-address (system-name))) |
| 573 | ((eq cur-char ?q) ;(undocumented unqual hostname) | 573 | ((eq cur-char ?q) ;(undocumented unqual hostname) |
| 574 | (let ((qualname (system-name))) | 574 | (let ((qualname (system-name))) |
| 575 | (if (string-match "\\." qualname) | 575 | (if (string-match "\\." qualname) |
| @@ -639,17 +639,6 @@ Suggests replacing OLD-FORM with NEW-FORM." | |||
| 639 | (insert "\"" old-form "\" -- use " new-form "\n")) | 639 | (insert "\"" old-form "\" -- use " new-form "\n")) |
| 640 | (display-buffer "*Time-stamp-compatibility*")))) | 640 | (display-buffer "*Time-stamp-compatibility*")))) |
| 641 | 641 | ||
| 642 | |||
| 643 | |||
| 644 | (defun time-stamp-mail-host-name () | ||
| 645 | "Return the name of the host where the user receives mail. | ||
| 646 | This is the value of `mail-host-address' if bound and a string, | ||
| 647 | otherwise the value of the function `system-name'." | ||
| 648 | (or (and (boundp 'mail-host-address) | ||
| 649 | (stringp mail-host-address) | ||
| 650 | mail-host-address) | ||
| 651 | (system-name))) | ||
| 652 | |||
| 653 | (provide 'time-stamp) | 642 | (provide 'time-stamp) |
| 654 | 643 | ||
| 655 | ;;; time-stamp.el ends here | 644 | ;;; time-stamp.el ends here |
diff --git a/lisp/xdg.el b/lisp/xdg.el index b11e104e2b7..4973065f91a 100644 --- a/lisp/xdg.el +++ b/lisp/xdg.el | |||
| @@ -109,6 +109,12 @@ file:///foo/bar.jpg" | |||
| 109 | (defvar xdg-user-dirs nil | 109 | (defvar xdg-user-dirs nil |
| 110 | "Alist of directory keys and values.") | 110 | "Alist of directory keys and values.") |
| 111 | 111 | ||
| 112 | (defun xdg--substitute-home-env (str) | ||
| 113 | (if (file-name-absolute-p str) str | ||
| 114 | (save-match-data | ||
| 115 | (and (string-match "^$HOME/" str) | ||
| 116 | (replace-match "~/" t nil str 0))))) | ||
| 117 | |||
| 112 | (defun xdg--user-dirs-parse-line () | 118 | (defun xdg--user-dirs-parse-line () |
| 113 | "Return pair of user-dirs key to directory value in LINE, otherwise nil. | 119 | "Return pair of user-dirs key to directory value in LINE, otherwise nil. |
| 114 | This should be called at the beginning of a line." | 120 | This should be called at the beginning of a line." |
| @@ -117,7 +123,7 @@ This should be called at the beginning of a line." | |||
| 117 | (looking-at xdg-line-regexp)) | 123 | (looking-at xdg-line-regexp)) |
| 118 | (let ((k (match-string 1)) | 124 | (let ((k (match-string 1)) |
| 119 | (v (match-string 2))) | 125 | (v (match-string 2))) |
| 120 | (when (and k v) (cons k v))))) | 126 | (when (and k v) (cons k (xdg--substitute-home-env v)))))) |
| 121 | 127 | ||
| 122 | (defun xdg--user-dirs-parse-file (filename) | 128 | (defun xdg--user-dirs-parse-file (filename) |
| 123 | "Return alist of xdg-user-dirs from FILENAME." | 129 | "Return alist of xdg-user-dirs from FILENAME." |
| @@ -137,7 +143,8 @@ This should be called at the beginning of a line." | |||
| 137 | (setq xdg-user-dirs | 143 | (setq xdg-user-dirs |
| 138 | (xdg--user-dirs-parse-file | 144 | (xdg--user-dirs-parse-file |
| 139 | (expand-file-name "user-dirs.dirs" (xdg-config-home))))) | 145 | (expand-file-name "user-dirs.dirs" (xdg-config-home))))) |
| 140 | (cdr (assoc name xdg-user-dirs))) | 146 | (let ((dir (cdr (assoc name xdg-user-dirs)))) |
| 147 | (when dir (expand-file-name dir)))) | ||
| 141 | 148 | ||
| 142 | (provide 'xdg) | 149 | (provide 'xdg) |
| 143 | 150 | ||
diff --git a/test/lisp/progmodes/js-tests.el b/test/lisp/progmodes/js-tests.el index 7cb737c30e2..d61f084e0df 100644 --- a/test/lisp/progmodes/js-tests.el +++ b/test/lisp/progmodes/js-tests.el | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | 23 | ||
| 24 | (require 'ert) | 24 | (require 'ert) |
| 25 | (require 'js) | 25 | (require 'js) |
| 26 | (require 'syntax) | ||
| 26 | 27 | ||
| 27 | (ert-deftest js-mode-fill-bug-19399 () | 28 | (ert-deftest js-mode-fill-bug-19399 () |
| 28 | (with-temp-buffer | 29 | (with-temp-buffer |
| @@ -99,6 +100,22 @@ if (!/[ (:,='\"]/.test(value)) { | |||
| 99 | (forward-line) | 100 | (forward-line) |
| 100 | (should (looking-at " \\* test")))) | 101 | (should (looking-at " \\* test")))) |
| 101 | 102 | ||
| 103 | (ert-deftest js-mode-regexp-syntax-bug-25529 () | ||
| 104 | (dolist (regexp-contents '("[^[]" | ||
| 105 | "[/]" | ||
| 106 | ;; A comment with the regexp on the next | ||
| 107 | ;; line. | ||
| 108 | "*comment*/\n/regexp")) | ||
| 109 | (with-temp-buffer | ||
| 110 | (js-mode) | ||
| 111 | (insert "let x = /" regexp-contents "/;\n") | ||
| 112 | (save-excursion (insert "something();\n")) | ||
| 113 | ;; The failure mode was that the regexp literal was not | ||
| 114 | ;; recognized, causing the next line to be given string syntax; | ||
| 115 | ;; but check for comment syntax as well to prevent an | ||
| 116 | ;; implementation not recognizing the comment example. | ||
| 117 | (should-not (syntax-ppss-context (syntax-ppss)))))) | ||
| 118 | |||
| 102 | (provide 'js-tests) | 119 | (provide 'js-tests) |
| 103 | 120 | ||
| 104 | ;;; js-tests.el ends here | 121 | ;;; js-tests.el ends here |
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el index 5372c37a179..d601f43002a 100644 --- a/test/lisp/textmodes/css-mode-tests.el +++ b/test/lisp/textmodes/css-mode-tests.el | |||
| @@ -226,7 +226,8 @@ | |||
| 226 | ("a:v" "isited" ":visited") | 226 | ("a:v" "isited" ":visited") |
| 227 | ("border-" "color: red" "border-color") | 227 | ("border-" "color: red" "border-color") |
| 228 | ("border-color: red" ";" "border-color") | 228 | ("border-color: red" ";" "border-color") |
| 229 | ("border-color: red; color: green" ";" "color"))) | 229 | ("border-color: red; color: green" ";" "color") |
| 230 | (" border-collapse " ": collapse;" "border-collapse"))) | ||
| 230 | (with-temp-buffer | 231 | (with-temp-buffer |
| 231 | (css-mode) | 232 | (css-mode) |
| 232 | (insert (nth 0 item)) | 233 | (insert (nth 0 item)) |
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el index 160d0f106e9..a1b48a643e1 100644 --- a/test/src/fns-tests.el +++ b/test/src/fns-tests.el | |||
| @@ -473,12 +473,12 @@ | |||
| 473 | (should (lax-plist-get d2 1)) | 473 | (should (lax-plist-get d2 1)) |
| 474 | (should-error (lax-plist-get c1 2) :type 'circular-list) | 474 | (should-error (lax-plist-get c1 2) :type 'circular-list) |
| 475 | (should (lax-plist-get c2 2)) | 475 | (should (lax-plist-get c2 2)) |
| 476 | (should-not (lax-plist-get d1 2)) | 476 | (should-error (lax-plist-get d1 2) :type 'wrong-type-argument) |
| 477 | (should (lax-plist-get d2 2)) | 477 | (should (lax-plist-get d2 2)) |
| 478 | (should-error (lax-plist-get c1 3) :type 'circular-list) | 478 | (should-error (lax-plist-get c1 3) :type 'circular-list) |
| 479 | (should-error (lax-plist-get c2 3) :type 'circular-list) | 479 | (should-error (lax-plist-get c2 3) :type 'circular-list) |
| 480 | (should-not (lax-plist-get d1 3)) | 480 | (should-error (lax-plist-get d1 3) :type 'wrong-type-argument) |
| 481 | (should-not (lax-plist-get d2 3)))) | 481 | (should-error (lax-plist-get d2 3) :type 'wrong-type-argument))) |
| 482 | 482 | ||
| 483 | (ert-deftest test-cycle-plist-member () | 483 | (ert-deftest test-cycle-plist-member () |
| 484 | (let ((c1 (cyc1 1)) | 484 | (let ((c1 (cyc1 1)) |
| @@ -509,12 +509,12 @@ | |||
| 509 | (should (plist-put d2 1 1)) | 509 | (should (plist-put d2 1 1)) |
| 510 | (should-error (plist-put c1 2 2) :type 'circular-list) | 510 | (should-error (plist-put c1 2 2) :type 'circular-list) |
| 511 | (should (plist-put c2 2 2)) | 511 | (should (plist-put c2 2 2)) |
| 512 | (should (plist-put d1 2 2)) | 512 | (should-error (plist-put d1 2 2) :type 'wrong-type-argument) |
| 513 | (should (plist-put d2 2 2)) | 513 | (should (plist-put d2 2 2)) |
| 514 | (should-error (plist-put c1 3 3) :type 'circular-list) | 514 | (should-error (plist-put c1 3 3) :type 'circular-list) |
| 515 | (should-error (plist-put c2 3 3) :type 'circular-list) | 515 | (should-error (plist-put c2 3 3) :type 'circular-list) |
| 516 | (should (plist-put d1 3 3)) | 516 | (should-error (plist-put d1 3 3) :type 'wrong-type-argument) |
| 517 | (should (plist-put d2 3 3)))) | 517 | (should-error (plist-put d2 3 3) :type 'wrong-type-argument))) |
| 518 | 518 | ||
| 519 | (ert-deftest test-cycle-lax-plist-put () | 519 | (ert-deftest test-cycle-lax-plist-put () |
| 520 | (let ((c1 (cyc1 1)) | 520 | (let ((c1 (cyc1 1)) |
| @@ -527,12 +527,12 @@ | |||
| 527 | (should (lax-plist-put d2 1 1)) | 527 | (should (lax-plist-put d2 1 1)) |
| 528 | (should-error (lax-plist-put c1 2 2) :type 'circular-list) | 528 | (should-error (lax-plist-put c1 2 2) :type 'circular-list) |
| 529 | (should (lax-plist-put c2 2 2)) | 529 | (should (lax-plist-put c2 2 2)) |
| 530 | (should (lax-plist-put d1 2 2)) | 530 | (should-error (lax-plist-put d1 2 2) :type 'wrong-type-argument) |
| 531 | (should (lax-plist-put d2 2 2)) | 531 | (should (lax-plist-put d2 2 2)) |
| 532 | (should-error (lax-plist-put c1 3 3) :type 'circular-list) | 532 | (should-error (lax-plist-put c1 3 3) :type 'circular-list) |
| 533 | (should-error (lax-plist-put c2 3 3) :type 'circular-list) | 533 | (should-error (lax-plist-put c2 3 3) :type 'circular-list) |
| 534 | (should (lax-plist-put d1 3 3)) | 534 | (should-error (lax-plist-put d1 3 3) :type 'wrong-type-argument) |
| 535 | (should (lax-plist-put d2 3 3)))) | 535 | (should-error (lax-plist-put d2 3 3) :type 'wrong-type-argument))) |
| 536 | 536 | ||
| 537 | (ert-deftest test-cycle-equal () | 537 | (ert-deftest test-cycle-equal () |
| 538 | (should-error (equal (cyc1 1) (cyc1 1))) | 538 | (should-error (equal (cyc1 1) (cyc1 1))) |