commit 2910e668eb95b35a2854426c1e6ef0137da578a4 (HEAD, refs/remotes/origin/master) Author: Michael Albinus Date: Wed Jul 28 09:06:37 2021 +0200 Display yubikey message properly in Tramp * lisp/net/tramp.el (tramp-action-show-and-confirm-message): Display message properly. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 51d5d06871..80cdd56c0d 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -4684,17 +4684,15 @@ The terminal type can be configured with `tramp-terminal-type'." "Show the user a message for confirmation. Wait, until the connection buffer changes." (with-current-buffer (process-buffer proc) - (let ((enable-recursive-minibuffers t) - (stimers (with-timeout-suspend))) + (let ((stimers (with-timeout-suspend))) (tramp-message vec 6 "\n%s" (buffer-string)) (goto-char (point-min)) (tramp-check-for-regexp proc tramp-process-action-regexp) - (tramp-message - vec 0 "%s" (replace-regexp-in-string "[\r\n]" "" (match-string 0))) - ;; Hide message. - (narrow-to-region (point-max) (point-max)) - ;; Wait for new output. - (tramp-wait-for-regexp proc 30 ".") + (with-temp-message (replace-regexp-in-string "[\r\n]" "" (match-string 0)) + ;; Hide message in buffer. + (narrow-to-region (point-max) (point-max)) + ;; Wait for new output. + (tramp-wait-for-regexp proc 30 ".")) ;; Reenable the timers. (with-timeout-unsuspend stimers))) t) commit cfcf42ff879f766ffe5812fb0cd12f35803c1bfb Author: Brian Leung Date: Tue Jul 20 00:32:34 2021 -0700 Ensure that gud commands for non-GDB debuggers are handled by repeat-mode * lisp/progmodes/gud.el (sdb-repeat-map): Define. (sdb): Set repeat-mode property to the symbol corresponding to the repeat map. (dbx-repeat-map): Define. (dbx): Set repeat-mode property to the symbol corresponding to the repeat map. (xdb-repeat-map): Define. (xdb): Set repeat-mode property to the symbol corresponding to the repeat map. (perldb-repeat-map): Define. (perldb): Set repeat-mode property to the symbol corresponding to the repeat map. (pdb-repeat-map): Define. (pdb): Set repeat-mode property to the symbol corresponding to the repeat map. (guiler-repeat-map): Define. (guiler): Set repeat-mode property to the symbol corresponding to the repeat map. (jdb-repeat-map): Define. (jdb): Set repeat-mode property to the symbol corresponding to the repeat map. (Bug#49632) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index c4413b104b..ba438d651b 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -1037,6 +1037,18 @@ SKIP is the number of chars to skip on each line, it defaults to 0." (defvar gud-sdb-lastfile nil) +(defvar sdb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("i" . gud-stepi) + ("c" . gud-cont) + ("l" . gud-refresh))) + (define-key map key cmd)) + map) + "Keymap to repeat `sdb' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + (defun gud-sdb-marker-filter (string) (setq gud-marker-acc (if gud-marker-acc (concat gud-marker-acc string) string)) @@ -1107,6 +1119,8 @@ and source-file directory for your debugger." (gud-def gud-cont "c" "\C-r" "Continue with display.") (gud-def gud-print "%e/" "\C-p" "Evaluate C expression at point.") + (gud-set-repeat-map-property 'sdb-repeat-map) + (setq comint-prompt-regexp "\\(^\\|\n\\)\\*") (setq paragraph-start comint-prompt-regexp) (run-hooks 'sdb-mode-hook) @@ -1265,6 +1279,23 @@ whereby $stopformat=1 produces an output format compatible with ;; whereby `set $stopformat=1' reportedly produces output compatible ;; with `gud-dbx-marker-filter', which we prefer. +(defvar dbx-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("i" . gud-stepi) + ("c" . gud-cont) + ("l" . gud-refresh) + ("<" . gud-up) + (">" . gud-down))) + (define-key map key cmd)) + (when (or gud-mips-p + gud-irix-p) + (define-key map "f" 'gud-finish)) + map) + "Keymap to repeat `dbx' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + ;; The process filter is also somewhat ;; unreliable, sometimes not spotting the markers; I don't know ;; whether there's anything that can be done about that.] @@ -1412,6 +1443,8 @@ and source-file directory for your debugger." (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.") (gud-def gud-run "run" nil "Run the program.") + (gud-set-repeat-map-property 'dbx-repeat-map) + (setq comint-prompt-regexp "^[^)\n]*dbx) *") (setq paragraph-start comint-prompt-regexp) (run-hooks 'dbx-mode-hook) @@ -1423,6 +1456,21 @@ and source-file directory for your debugger." ;; History of argument lists passed to xdb. (defvar gud-xdb-history nil) +(defvar xdb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("i" . gud-stepi) + ("c" . gud-cont) + ("l" . gud-refresh) + ("f" . gud-finish) + ("<" . gud-up) + (">" . gud-down))) + (define-key map key cmd)) + map) + "Keymap to repeat `xdb' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + (defcustom gud-xdb-directories nil "A list of directories that xdb should search for source code. If nil, only source files in the program directory @@ -1488,6 +1536,8 @@ directories if your program contains sources from more than one directory." (gud-def gud-finish "bu\\t" "\C-f" "Finish executing current function.") (gud-def gud-print "p %e" "\C-p" "Evaluate C expression at point.") + (gud-set-repeat-map-property 'xdb-repeat-map) + (setq comint-prompt-regexp "^>") (setq paragraph-start comint-prompt-regexp) (run-hooks 'xdb-mode-hook)) @@ -1498,6 +1548,17 @@ directories if your program contains sources from more than one directory." ;; History of argument lists passed to perldb. (defvar gud-perldb-history nil) +(defvar perldb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("c" . gud-cont) + ("l" . gud-refresh))) + (define-key map key cmd)) + map) + "Keymap to repeat `perldb' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + (defun gud-perldb-massage-args (_file args) "Convert a command line as would be typed normally to run perldb into one that invokes an Emacs-enabled debugging session. @@ -1640,6 +1701,7 @@ and source-file directory for your debugger." (gud-def gud-print "p %e" "\C-p" "Evaluate perl expression at point.") (gud-def gud-until "c %l" "\C-u" "Continue to current line.") + (gud-set-repeat-map-property 'perldb-repeat-map) (setq comint-prompt-regexp "^ DB<+[0-9]+>+ ") (setq paragraph-start comint-prompt-regexp) @@ -1668,6 +1730,20 @@ and source-file directory for your debugger." (defvar gud-pdb-marker-regexp-start "^> ") +(defvar pdb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("c" . gud-cont) + ("l" . gud-refresh) + ("f" . gud-finish) + ("<" . gud-up) + (">" . gud-down))) + (define-key map key cmd)) + map) + "Keymap to repeat `pdb' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + ;; There's no guarantee that Emacs will hand the filter the entire ;; marker at once; it could be broken up across several strings. We ;; might even receive a big chunk with several markers in it. If we @@ -1757,6 +1833,8 @@ directory and source-file directory for your debugger." (gud-def gud-print "p %e" "\C-p" "Evaluate Python expression at point.") (gud-def gud-statement "!%e" "\C-e" "Execute Python statement at point.") + (gud-set-repeat-map-property 'pdb-repeat-map) + ;; (setq comint-prompt-regexp "^(.*pdb[+]?) *") (setq comint-prompt-regexp "^(Pdb) *") (setq paragraph-start comint-prompt-regexp) @@ -1770,6 +1848,19 @@ directory and source-file directory for your debugger." (defvar gud-guiler-lastfile nil) +(defvar guiler-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("l" . gud-refresh) + ("f" . gud-finish) + ("<" . gud-up) + (">" . gud-down))) + (define-key map key cmd)) + map) + "Keymap to repeat `guiler' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + (defun gud-guiler-marker-filter (string) (setq gud-marker-acc (if gud-marker-acc (concat gud-marker-acc string) string)) @@ -1835,6 +1926,8 @@ and source-file directory for your debugger." (gud-def gud-down ",down" ">" "Down one stack frame.") (gud-def gud-print "%e" "\C-p" "Evaluate Guile expression at point.") + (gud-set-repeat-map-property 'guiler-repeat-map) + (setq comint-prompt-regexp "^scheme@([^>]+> ") (setq paragraph-start comint-prompt-regexp) (run-hooks 'guiler-mode-hook)) @@ -2280,6 +2373,21 @@ extension EXTN. Normally EXTN is given as the regular expression ;; Note: Reset to this value every time a prompt is seen (defvar gud-jdb-lowest-stack-level 999) +(defvar jdb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("i" . gud-stepi) + ("c" . gud-cont) + ("f" . gud-finish) + ("<" . gud-up) + (">" . gud-down) + ("l" . gud-refresh))) + (define-key map key cmd)) + map) + "Keymap to repeat `jdb' stepping instructions `C-x C-a C-n n n'. +Used in `repeat-mode'.") + (defun gud-jdb-find-source-using-classpath (p) "Find source file corresponding to fully qualified class P. Convert P from jdb's output, converted to a pathname @@ -2488,6 +2596,8 @@ gud, see `gud-mode'." (gud-def gud-print "print %e" "\C-p" "Print value of expression at point.") (gud-def gud-pstar "dump %e" nil "Print all object information at point.") + (gud-set-repeat-map-property 'jdb-repeat-map) + (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") (setq paragraph-start comint-prompt-regexp) (run-hooks 'jdb-mode-hook) commit 29d62099957b2269c2505be3a9059c88d2d71881 Author: Brian Leung Date: Mon Jul 19 23:41:01 2021 -0700 Ensure that gud commands for M-x gdb are handled by repeat-mode * lisp/progmodes/gud.el (gud-gdb-repeat-map): Rename from gud-repeat-map, and populate at the top-level. (gud-set-repeat-map-property): Introduce this helper function for setting the repeat-map property. (gud-gdb): Use the gud-set-repeat-map-property function to assign the repeat-map property. * lisp/progmodes/gdb-mi.el (gdb): Use the gud-set-repeat-map-property function to assign the repeat-map property. Because different debugging tools may not support all of the gud-foo functions, we reassign the repeat-map property within the respective commands, as opposed to the top level of the files, to ensure that the repeat-map property is reassigned each time to a symbol corresponding to the active debugging tool. (Bug#49632) diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 57c99abec6..b9c8305bed 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -996,6 +996,8 @@ detailed description of this mode. (define-key gud-minor-mode-map [left-margin C-mouse-3] 'gdb-mouse-jump) + (gud-set-repeat-map-property 'gud-gdb-repeat-map) + (setq-local gud-gdb-completion-function 'gud-gdbmi-completions) (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 740a6e2581..c4413b104b 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -320,10 +320,32 @@ Used to gray out relevant toolbar icons.") (tool-bar-local-item-from-menu (car x) (cdr x) map gud-minor-mode-map)))) -(defvar gud-repeat-map (make-sparse-keymap) - "Keymap to repeat gud stepping instructions `C-x C-a C-n n n'. +(defvar gud-gdb-repeat-map + (let ((map (make-sparse-keymap))) + (pcase-dolist (`(,key . ,cmd) '(("n" . gud-next) + ("s" . gud-step) + ("i" . gud-stepi) + ("c" . gud-cont) + ("l" . gud-refresh) + ("f" . gud-finish) + ("<" . gud-up) + (">" . gud-down))) + (define-key map key cmd)) + map) + "Keymap to repeat `gud-gdb' stepping instructions `C-x C-a C-n n n'. Used in `repeat-mode'.") +(defun gud-set-repeat-map-property (keymap-symbol) + "Set the `repeat-map' property of relevant gud commands to KEYMAP-SYMBOL. + +KEYMAP-SYMBOL is a symbol corresponding to some +`-repeat-map', a keymap containing gud commands that may be +repeated when `repeat-mode' is on." + (map-keymap-internal (lambda (_ cmd) + (put cmd 'repeat-map keymap-symbol)) + (symbol-value keymap-symbol))) + + (defun gud-file-name (f) "Transform a relative file name to an absolute file name. Uses `gud--directories' to find the source files." @@ -814,16 +836,7 @@ the buffer in which this command was invoked." (gud-def gud-until "until %l" "\C-u" "Continue to current line.") (gud-def gud-run "run" nil "Run the program.") - (dolist (cmd '(("n" . gud-next) - ("s" . gud-step) - ("i" . gud-stepi) - ("c" . gud-cont) - ("l" . gud-refresh) - ("f" . gud-finish) - ("<" . gud-up) - (">" . gud-down))) - (define-key gud-repeat-map (car cmd) (cdr cmd)) - (put (cdr cmd) 'repeat-map 'gud-repeat-map)) + (gud-set-repeat-map-property 'gud-gdb-repeat-map) (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point nil 'local) commit 30bd6a50aa4cf1cb486b40876fd42bd5da74e77a Author: Juri Linkov Date: Tue Jul 27 23:55:32 2021 +0300 * lisp/tab-bar.el (tab-bar-format-global): Use string-trim-right (bug#30056). diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index c63ef20abe..4d7a0796e5 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -748,7 +748,7 @@ When `tab-bar-format-global' is added to `tab-bar-format' then modes that display information on the mode line using `global-mode-string' will display the same text on the tab bar instead." - `((global menu-item ,(format-mode-line global-mode-string) ignore))) + `((global menu-item ,(string-trim-right (format-mode-line global-mode-string)) ignore))) (defun tab-bar-format-list (format-list) (let ((i 0)) commit b4173443fbc2a7c5d318767c503dae228eca2e3c Author: Mattias EngdegÄrd Date: Tue Jul 27 20:29:40 2021 +0200 ; * lisp/completion.el (load-completions-from-file): Simplify Use a condition-case :success clause instead flags for control. diff --git a/lisp/completion.el b/lisp/completion.el index dc0af36cd2..93a869e86f 100644 --- a/lisp/completion.el +++ b/lisp/completion.el @@ -1917,68 +1917,64 @@ If file is not specified, then use `save-completions-file-name'." (clear-visited-file-modtime) (erase-buffer) - (let ((insert-okay-p nil) - (buffer (current-buffer)) + (let ((buffer (current-buffer)) string entry last-use-time cmpl-entry cmpl-last-use-time (current-completion-source cmpl-source-init-file) (total-in-file 0) (total-perm 0)) ;; insert the file into a buffer (condition-case nil - (progn (insert-file-contents filename t) - (setq insert-okay-p t)) - + (insert-file-contents filename t) (file-error (message "File error trying to load completion file %s." - filename))) - ;; parse it - (if insert-okay-p - (progn - (goto-char (point-min)) - - (condition-case nil - (while t - (setq entry (read buffer)) - (setq total-in-file (1+ total-in-file)) - (cond - ((and (consp entry) - (stringp (setq string (car entry))) - (cond - ((eq (setq last-use-time (cdr entry)) 'T) - ;; handle case sensitivity - (setq total-perm (1+ total-perm)) - (setq last-use-time t)) - ((eq last-use-time t) - (setq total-perm (1+ total-perm))) - ((integerp last-use-time)))) - ;; Valid entry - ;; add it in - (setq cmpl-last-use-time - (completion-last-use-time - (setq cmpl-entry - (add-completion-to-tail-if-new string)))) - (if (or (eq last-use-time t) - (and (> last-use-time 1000);;backcompatibility - (not (eq cmpl-last-use-time t)) - (or (not cmpl-last-use-time) - ;; more recent - (> last-use-time cmpl-last-use-time)))) - ;; update last-use-time - (set-completion-last-use-time cmpl-entry last-use-time))) - (t - ;; Bad format - (message "Error: invalid saved completion - %s" - (prin1-to-string entry)) - ;; try to get back in sync - (search-forward "\n(")))) - (search-failed - (message "End of file while reading completions.")) - (end-of-file - (if (= (point) (point-max)) - (if (not no-message-p) - (message "Loading completions from file %s . . . Done." - filename)) - (message "End of file while reading completions.")))))) + filename)) + (:success + ;; parse it + (goto-char (point-min)) + + (condition-case nil + (while t + (setq entry (read buffer)) + (setq total-in-file (1+ total-in-file)) + (cond + ((and (consp entry) + (stringp (setq string (car entry))) + (cond + ((eq (setq last-use-time (cdr entry)) 'T) + ;; handle case sensitivity + (setq total-perm (1+ total-perm)) + (setq last-use-time t)) + ((eq last-use-time t) + (setq total-perm (1+ total-perm))) + ((integerp last-use-time)))) + ;; Valid entry + ;; add it in + (setq cmpl-last-use-time + (completion-last-use-time + (setq cmpl-entry + (add-completion-to-tail-if-new string)))) + (if (or (eq last-use-time t) + (and (> last-use-time 1000);;backcompatibility + (not (eq cmpl-last-use-time t)) + (or (not cmpl-last-use-time) + ;; more recent + (> last-use-time cmpl-last-use-time)))) + ;; update last-use-time + (set-completion-last-use-time cmpl-entry last-use-time))) + (t + ;; Bad format + (message "Error: invalid saved completion - %s" + (prin1-to-string entry)) + ;; try to get back in sync + (search-forward "\n(")))) + (search-failed + (message "End of file while reading completions.")) + (end-of-file + (if (= (point) (point-max)) + (if (not no-message-p) + (message "Loading completions from file %s . . . Done." + filename)) + (message "End of file while reading completions.")))))) )))))) (defun completion-initialize () commit 35610b870e8581d80963211e4ff983174a070d00 Author: Michael Albinus Date: Tue Jul 27 19:41:57 2021 +0200 Mark all autorevert tests as unstable on Cygwin (bug#49665) * test/lisp/autorevert-tests.el: Mark all tests as unstable on Cygwin (bug#49665). diff --git a/test/lisp/autorevert-tests.el b/test/lisp/autorevert-tests.el index 3e97e9cfa5..449dabf987 100644 --- a/test/lisp/autorevert-tests.el +++ b/test/lisp/autorevert-tests.el @@ -671,6 +671,12 @@ This expects `auto-revert--messages' to be bound by (auto-revert--deftest-remote auto-revert-test07-auto-revert-several-buffers "Check autorevert for several buffers visiting the same remote file.") +;; Mark all tests as unstable on Cygwin (bug#49665). +(when (eq system-type 'cygwin) + (dolist (test (apropos-internal "^auto-revert" #'ert-test-boundp)) + (setf (ert-test-tags (ert-get-test test)) + (cons :unstable (ert-test-tags (ert-get-test test)))))) + (defun auto-revert-test-all (&optional interactive) "Run all tests for \\[auto-revert]." (interactive "p") commit 949dd41c31dab69f7a5067bba324c28bb2cfbf8e Author: Mattias EngdegÄrd Date: Tue Jul 27 17:26:26 2021 +0200 Fix mistake in switch-case generation of `null` (bug#49746) Reported by Gregor Zattler. * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Be more careful in the selection of equality. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index f6150069e8..1b64a06fe4 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -4362,7 +4362,8 @@ Return (TAIL VAR TEST CASES), where: (and (or (eq var switch-var) (not switch-var)) (progn (setq switch-var var) - (setq switch-test 'eq) + (setq switch-test + (byte-compile--common-test switch-test 'eq)) (unless (memq nil keys) (push nil keys) (push (cons (list nil) (or body '(t))) cases)) diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index 7c40f7ebca..ee0f931c19 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -503,6 +503,12 @@ (:success 'good)) (1+ x)))) (funcall f 3)) + + ;; Check `not' in cond switch (bug#49746). + (mapcar (lambda (x) (cond ((equal x "a") 1) + ((member x '("b" "c")) 2) + ((not x) 3))) + '("a" "b" "c" "d" nil)) ) "List of expressions for cross-testing interpreted and compiled code.") commit 989937e1bc29ffec3835aee34c46479d25d0bf05 Author: Lars Ingebrigtsen Date: Tue Jul 27 17:23:32 2021 +0200 Revert "Make revert-buffer preserve buffer-readedness" This reverts commit fcae435f598471a2911641412125c5ac4f73559f. This leads to problems when reverting from a file that's changed readedness externally. diff --git a/etc/NEWS b/etc/NEWS index b969590f7c..3513fa4d64 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2827,9 +2827,6 @@ similar to prefix arguments, but are more flexible and discoverable. * Incompatible Editing Changes in Emacs 28.1 -** 'revert-buffer' will now preserve buffer-readedness. -It previously switched the read-only flag off. - ** 'electric-indent-mode' now also indents inside strings and comments, (unless the indentation function doesn't, of course). To recover the previous behavior you can use: diff --git a/lisp/files.el b/lisp/files.el index 6088822686..0bf866d0ec 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -6364,9 +6364,7 @@ preserve markers and overlays, at the price of being slower." ;; interface, but leaving the programmatic interface the same. (interactive (list (not current-prefix-arg))) (let ((revert-buffer-in-progress-p t) - (revert-buffer-preserve-modes preserve-modes) - ;; Preserve buffer-readedness. - (buffer-read-only buffer-read-only)) + (revert-buffer-preserve-modes preserve-modes)) (funcall (or revert-buffer-function #'revert-buffer--default) ignore-auto noconfirm))) commit 17048030f52b359d3baa09fb8f7a7c8c308ba666 Author: Michael Albinus Date: Tue Jul 27 13:08:36 2021 +0200 ; Fix last change in tramp.el diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 2a664b6f79..51d5d06871 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -4690,7 +4690,7 @@ Wait, until the connection buffer changes." (goto-char (point-min)) (tramp-check-for-regexp proc tramp-process-action-regexp) (tramp-message - vec 0 "%s" (replace-regexp-in-string "[\r\n]" "" (match-string 1))) + vec 0 "%s" (replace-regexp-in-string "[\r\n]" "" (match-string 0))) ;; Hide message. (narrow-to-region (point-max) (point-max)) ;; Wait for new output.