diff options
| author | Glenn Morris | 2018-02-13 09:26:20 -0800 |
|---|---|---|
| committer | Glenn Morris | 2018-02-13 09:26:20 -0800 |
| commit | 98f4e336e879e54251694fa0d47b69d8d325176d (patch) | |
| tree | b623c340b850debd5f2e907287f3c48735202aad /lisp | |
| parent | 1d135af78c3ddd502b5feb84884ea55cbc664753 (diff) | |
| parent | 333d6f4d99a80f30ae6cd3880b9d9ec38a85691b (diff) | |
| download | emacs-98f4e336e879e54251694fa0d47b69d8d325176d.tar.gz emacs-98f4e336e879e54251694fa0d47b69d8d325176d.zip | |
Merge from origin/emacs-26
333d6f4 (origin/emacs-26) More changes in the Emacs manual
52ca0d1 * lisp/vc/vc.el (vc-deduce-backend): Use ignore-errors.
69e8046 Don't signal error in vc-deduce-backend
f568c91 * doc/misc/tramp.texi: Index more user options.
92ca881 Minor change in the Emacs manual
e055a12 NEWS update about 'string-trim'
96b6e24 Clarify TRAMP process-environment interaction (Bug#30419)
4fa467e * lisp/progmodes/grep.el (grep-num-matches-found): New variable.
a22820a Avoid aborts in cm.c due to too small TTY frame
26f6441 Another set of improvements in the Emacs manual
cef3b42 Fix help in mode-line-mode-menu
f8a493c Improve documentation of desktop restoring
10637af Improve the Emacs manual's chapter "Frames"
d924953 Fix unbound mm-uu-entry in mm-uu
cb2487b Improve Emacs user manual in fixit.texi
66e9527 Another minor change in the manual
6a1c03d More minor changes in the Emacs manual
32fb8c4 Avoid printing garbled error message from image.el
Conflicts:
etc/NEWS
lisp/image.el
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/bindings.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/mm-uu.el | 18 | ||||
| -rw-r--r-- | lisp/image.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/grep.el | 46 | ||||
| -rw-r--r-- | lisp/vc/vc.el | 2 |
5 files changed, 44 insertions, 26 deletions
diff --git a/lisp/bindings.el b/lisp/bindings.el index 60823445b97..6ef8ffb0933 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -619,7 +619,7 @@ Switch to the most recently selected buffer other than the current one." | |||
| 619 | :button (:toggle . (bound-and-true-p flyspell-mode)))) | 619 | :button (:toggle . (bound-and-true-p flyspell-mode)))) |
| 620 | (bindings--define-key mode-line-mode-menu [auto-revert-tail-mode] | 620 | (bindings--define-key mode-line-mode-menu [auto-revert-tail-mode] |
| 621 | '(menu-item "Auto revert tail (Tail)" auto-revert-tail-mode | 621 | '(menu-item "Auto revert tail (Tail)" auto-revert-tail-mode |
| 622 | :help "Revert the tail of the buffer when buffer grows" | 622 | :help "Revert the tail of the buffer when the file on disk grows" |
| 623 | :enable (buffer-file-name) | 623 | :enable (buffer-file-name) |
| 624 | :button (:toggle . (bound-and-true-p auto-revert-tail-mode)))) | 624 | :button (:toggle . (bound-and-true-p auto-revert-tail-mode)))) |
| 625 | (bindings--define-key mode-line-mode-menu [auto-revert-mode] | 625 | (bindings--define-key mode-line-mode-menu [auto-revert-mode] |
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 32be336d13a..e15eba75924 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -624,7 +624,7 @@ MIME-TYPE specifies a MIME type and parameters, which defaults to the | |||
| 624 | value of `mm-uu-text-plain-type'." | 624 | value of `mm-uu-text-plain-type'." |
| 625 | (let ((case-fold-search t) | 625 | (let ((case-fold-search t) |
| 626 | (mm-uu-text-plain-type (or mime-type mm-uu-text-plain-type)) | 626 | (mm-uu-text-plain-type (or mime-type mm-uu-text-plain-type)) |
| 627 | text-start start-point end-point file-name result entry func) | 627 | text-start start-point end-point file-name result mm-uu-entry func) |
| 628 | (save-excursion | 628 | (save-excursion |
| 629 | (goto-char (point-min)) | 629 | (goto-char (point-min)) |
| 630 | (cond | 630 | (cond |
| @@ -637,26 +637,26 @@ value of `mm-uu-text-plain-type'." | |||
| 637 | (setq text-start (point)) | 637 | (setq text-start (point)) |
| 638 | (while (re-search-forward mm-uu-beginning-regexp nil t) | 638 | (while (re-search-forward mm-uu-beginning-regexp nil t) |
| 639 | (setq start-point (match-beginning 0) | 639 | (setq start-point (match-beginning 0) |
| 640 | entry nil) | 640 | mm-uu-entry nil) |
| 641 | (let ((alist mm-uu-type-alist) | 641 | (let ((alist mm-uu-type-alist) |
| 642 | (beginning-regexp (match-string 0))) | 642 | (beginning-regexp (match-string 0))) |
| 643 | (while (not entry) | 643 | (while (not mm-uu-entry) |
| 644 | (if (string-match (mm-uu-beginning-regexp (car alist)) | 644 | (if (string-match (mm-uu-beginning-regexp (car alist)) |
| 645 | beginning-regexp) | 645 | beginning-regexp) |
| 646 | (setq entry (car alist)) | 646 | (setq mm-uu-entry (car alist)) |
| 647 | (pop alist)))) | 647 | (pop alist)))) |
| 648 | (if (setq func (mm-uu-function-1 entry)) | 648 | (if (setq func (mm-uu-function-1 mm-uu-entry)) |
| 649 | (funcall func)) | 649 | (funcall func)) |
| 650 | (forward-line);; in case of failure | 650 | (forward-line);; in case of failure |
| 651 | (when (and (not (mm-uu-configure-p (mm-uu-type entry) 'disabled)) | 651 | (when (and (not (mm-uu-configure-p (mm-uu-type mm-uu-entry) 'disabled)) |
| 652 | (let ((end-regexp (mm-uu-end-regexp entry))) | 652 | (let ((end-regexp (mm-uu-end-regexp mm-uu-entry))) |
| 653 | (if (not end-regexp) | 653 | (if (not end-regexp) |
| 654 | (or (setq end-point (point-max)) t) | 654 | (or (setq end-point (point-max)) t) |
| 655 | (prog1 | 655 | (prog1 |
| 656 | (re-search-forward end-regexp nil t) | 656 | (re-search-forward end-regexp nil t) |
| 657 | (forward-line) | 657 | (forward-line) |
| 658 | (setq end-point (point))))) | 658 | (setq end-point (point))))) |
| 659 | (or (not (setq func (mm-uu-function-2 entry))) | 659 | (or (not (setq func (mm-uu-function-2 mm-uu-entry))) |
| 660 | (funcall func))) | 660 | (funcall func))) |
| 661 | (if (and (> start-point text-start) | 661 | (if (and (> start-point text-start) |
| 662 | (progn | 662 | (progn |
| @@ -675,7 +675,7 @@ value of `mm-uu-text-plain-type'." | |||
| 675 | mm-uu-text-plain-type) | 675 | mm-uu-text-plain-type) |
| 676 | result)) | 676 | result)) |
| 677 | (push | 677 | (push |
| 678 | (funcall (mm-uu-function-extract entry)) | 678 | (funcall (mm-uu-function-extract mm-uu-entry)) |
| 679 | result) | 679 | result) |
| 680 | (goto-char (setq text-start end-point)))) | 680 | (goto-char (setq text-start end-point)))) |
| 681 | (when result | 681 | (when result |
diff --git a/lisp/image.el b/lisp/image.el index 2a8ea1fb886..b5f22351377 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -977,7 +977,7 @@ default is 20%." | |||
| 977 | 977 | ||
| 978 | (defun image--get-imagemagick-and-warn () | 978 | (defun image--get-imagemagick-and-warn () |
| 979 | (unless (or (fboundp 'imagemagick-types) (featurep 'ns)) | 979 | (unless (or (fboundp 'imagemagick-types) (featurep 'ns)) |
| 980 | (error "Can't rescale images without ImageMagick support")) | 980 | (error "Cannot rescale images without ImageMagick support")) |
| 981 | (let ((image (image--get-image))) | 981 | (let ((image (image--get-image))) |
| 982 | (image-flush image) | 982 | (image-flush image) |
| 983 | (when (fboundp 'imagemagick-types) | 983 | (when (fboundp 'imagemagick-types) |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 9ce4ff84627..14e251e0667 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -425,6 +425,14 @@ See `compilation-error-regexp-alist' for format details.") | |||
| 425 | (defvar grep-context-face 'shadow | 425 | (defvar grep-context-face 'shadow |
| 426 | "Face name to use for grep context lines.") | 426 | "Face name to use for grep context lines.") |
| 427 | 427 | ||
| 428 | (defvar grep-num-matches-found 0) | ||
| 429 | |||
| 430 | (defconst grep-mode-line-matches | ||
| 431 | `(" [" (:propertize (:eval (int-to-string grep-num-matches-found)) | ||
| 432 | face ,grep-hit-face | ||
| 433 | help-echo "Number of matches so far") | ||
| 434 | "]")) | ||
| 435 | |||
| 428 | (defvar grep-mode-font-lock-keywords | 436 | (defvar grep-mode-font-lock-keywords |
| 429 | '(;; Command output lines. | 437 | '(;; Command output lines. |
| 430 | (": \\(.+\\): \\(?:Permission denied\\|No such \\(?:file or directory\\|device or address\\)\\)$" | 438 | (": \\(.+\\): \\(?:Permission denied\\|No such \\(?:file or directory\\|device or address\\)\\)$" |
| @@ -432,7 +440,7 @@ See `compilation-error-regexp-alist' for format details.") | |||
| 432 | ;; remove match from grep-regexp-alist before fontifying | 440 | ;; remove match from grep-regexp-alist before fontifying |
| 433 | ("^Grep[/a-zA-z]* started.*" | 441 | ("^Grep[/a-zA-z]* started.*" |
| 434 | (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t)) | 442 | (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t)) |
| 435 | ("^Grep[/a-zA-z]* finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*" | 443 | ("^Grep[/a-zA-z]* finished with \\(?:\\(\\(?:[0-9]+ \\)?matches found\\)\\|\\(no matches found\\)\\).*" |
| 436 | (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t) | 444 | (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t) |
| 437 | (1 compilation-info-face nil t) | 445 | (1 compilation-info-face nil t) |
| 438 | (2 compilation-warning-face nil t)) | 446 | (2 compilation-warning-face nil t)) |
| @@ -503,21 +511,28 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 503 | (setenv "GREP_COLOR" "01;31") | 511 | (setenv "GREP_COLOR" "01;31") |
| 504 | ;; GREP_COLORS is used in GNU grep 2.5.2 and later versions | 512 | ;; GREP_COLORS is used in GNU grep 2.5.2 and later versions |
| 505 | (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:sl=:cx=:ne")) | 513 | (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:sl=:cx=:ne")) |
| 514 | (setq-local grep-num-matches-found 0) | ||
| 506 | (set (make-local-variable 'compilation-exit-message-function) | 515 | (set (make-local-variable 'compilation-exit-message-function) |
| 507 | (lambda (status code msg) | 516 | 'grep-exit-message) |
| 508 | (if (eq status 'exit) | ||
| 509 | ;; This relies on the fact that `compilation-start' | ||
| 510 | ;; sets buffer-modified to nil before running the command, | ||
| 511 | ;; so the buffer is still unmodified if there is no output. | ||
| 512 | (cond ((and (zerop code) (buffer-modified-p)) | ||
| 513 | '("finished (matches found)\n" . "matched")) | ||
| 514 | ((not (buffer-modified-p)) | ||
| 515 | '("finished with no matches found\n" . "no match")) | ||
| 516 | (t | ||
| 517 | (cons msg code))) | ||
| 518 | (cons msg code)))) | ||
| 519 | (run-hooks 'grep-setup-hook)) | 517 | (run-hooks 'grep-setup-hook)) |
| 520 | 518 | ||
| 519 | (defun grep-exit-message (status code msg) | ||
| 520 | "Return a status message for grep results." | ||
| 521 | (if (eq status 'exit) | ||
| 522 | ;; This relies on the fact that `compilation-start' | ||
| 523 | ;; sets buffer-modified to nil before running the command, | ||
| 524 | ;; so the buffer is still unmodified if there is no output. | ||
| 525 | (cond ((and (zerop code) (buffer-modified-p)) | ||
| 526 | (if (> grep-num-matches-found 0) | ||
| 527 | (cons (format "finished with %d matches found\n" grep-num-matches-found) | ||
| 528 | "matched") | ||
| 529 | '("finished with matches found\n" . "matched"))) | ||
| 530 | ((not (buffer-modified-p)) | ||
| 531 | '("finished with no matches found\n" . "no match")) | ||
| 532 | (t | ||
| 533 | (cons msg code))) | ||
| 534 | (cons msg code))) | ||
| 535 | |||
| 521 | (defun grep-filter () | 536 | (defun grep-filter () |
| 522 | "Handle match highlighting escape sequences inserted by the grep process. | 537 | "Handle match highlighting escape sequences inserted by the grep process. |
| 523 | This function is called from `compilation-filter-hook'." | 538 | This function is called from `compilation-filter-hook'." |
| @@ -535,7 +550,8 @@ This function is called from `compilation-filter-hook'." | |||
| 535 | (while (re-search-forward "\033\\[0?1;31m\\(.*?\\)\033\\[[0-9]*m" end 1) | 550 | (while (re-search-forward "\033\\[0?1;31m\\(.*?\\)\033\\[[0-9]*m" end 1) |
| 536 | (replace-match (propertize (match-string 1) | 551 | (replace-match (propertize (match-string 1) |
| 537 | 'face nil 'font-lock-face grep-match-face) | 552 | 'face nil 'font-lock-face grep-match-face) |
| 538 | t t)) | 553 | t t) |
| 554 | (cl-incf grep-num-matches-found)) | ||
| 539 | ;; Delete all remaining escape sequences | 555 | ;; Delete all remaining escape sequences |
| 540 | (goto-char beg) | 556 | (goto-char beg) |
| 541 | (while (re-search-forward "\033\\[[0-9;]*[mK]" end 1) | 557 | (while (re-search-forward "\033\\[[0-9;]*[mK]" end 1) |
| @@ -775,6 +791,8 @@ This function is called from `compilation-filter-hook'." | |||
| 775 | grep-hit-face) | 791 | grep-hit-face) |
| 776 | (set (make-local-variable 'compilation-error-regexp-alist) | 792 | (set (make-local-variable 'compilation-error-regexp-alist) |
| 777 | grep-regexp-alist) | 793 | grep-regexp-alist) |
| 794 | (set (make-local-variable 'compilation-mode-line-errors) | ||
| 795 | grep-mode-line-matches) | ||
| 778 | ;; compilation-directory-matcher can't be nil, so we set it to a regexp that | 796 | ;; compilation-directory-matcher can't be nil, so we set it to a regexp that |
| 779 | ;; can never match. | 797 | ;; can never match. |
| 780 | (set (make-local-variable 'compilation-directory-matcher) '("\\`a\\`")) | 798 | (set (make-local-variable 'compilation-directory-matcher) '("\\`a\\`")) |
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 21f56c9f55a..b87701536f8 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -996,7 +996,7 @@ Within directories, only files already under version control are noticed." | |||
| 996 | ((derived-mode-p 'diff-mode) diff-vc-backend) | 996 | ((derived-mode-p 'diff-mode) diff-vc-backend) |
| 997 | ;; Maybe we could even use comint-mode rather than shell-mode? | 997 | ;; Maybe we could even use comint-mode rather than shell-mode? |
| 998 | ((derived-mode-p 'dired-mode 'shell-mode 'compilation-mode) | 998 | ((derived-mode-p 'dired-mode 'shell-mode 'compilation-mode) |
| 999 | (vc-responsible-backend default-directory)) | 999 | (ignore-errors (vc-responsible-backend default-directory))) |
| 1000 | (vc-mode (vc-backend buffer-file-name)))) | 1000 | (vc-mode (vc-backend buffer-file-name)))) |
| 1001 | 1001 | ||
| 1002 | (declare-function vc-dir-current-file "vc-dir" ()) | 1002 | (declare-function vc-dir-current-file "vc-dir" ()) |