Mercurial > emacs
changeset 106597:b0e5aae20733
* net/tramp.el (tramp-echo-mark-marker-length): New defconst.
(tramp-echo-mark, tramp-echoed-echo-mark-regexp): Use it.
(tramp-check-for-regexp): Check also, when an echoing shell stops
to echo sent commands.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Tue, 15 Dec 2009 21:11:39 +0000 |
parents | cf8766d3e8ed |
children | 62f00c3d5b60 |
files | lisp/ChangeLog lisp/net/tramp.el |
diffstat | 2 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Dec 15 05:59:39 2009 +0000 +++ b/lisp/ChangeLog Tue Dec 15 21:11:39 2009 +0000 @@ -1,3 +1,10 @@ +2009-12-15 Michael Albinus <michael.albinus@gmx.de> + + * net/tramp.el (tramp-echo-mark-marker-length): New defconst. + (tramp-echo-mark, tramp-echoed-echo-mark-regexp): Use it. + (tramp-check-for-regexp): Check also, when an echoing shell stops + to echo sent commands. + 2009-12-14 Chong Yidong <cyd@stupidchicken.com> * Makefile.in: Revert last change (Bug#5191).
--- a/lisp/net/tramp.el Tue Dec 15 05:59:39 2009 +0000 +++ b/lisp/net/tramp.el Tue Dec 15 21:11:39 2009 +0000 @@ -948,7 +948,12 @@ (defconst tramp-echo-mark-marker "_echo" "String marker to surround echoed commands.") -(defconst tramp-echo-mark "_echo\b\b\b\b\b" +(defconst tramp-echo-mark-marker-length (length tramp-echo-mark-marker) + "String length of `tramp-echo-mark-marker'.") + +(defconst tramp-echo-mark + (concat tramp-echo-mark-marker + (make-string tramp-echo-mark-marker-length ?\b)) "String mark to be transmitted around shell commands. Used to separate their echo from the output they produce. This will only be used if we cannot disable remote echo via stty. @@ -958,7 +963,9 @@ followed by an equal number of backspaces to erase them will usually suffice.") -(defconst tramp-echoed-echo-mark-regexp "_echo\\(\b\\( \b\\)?\\)\\{5\\}" +(defconst tramp-echoed-echo-mark-regexp + (format "%s\\(\b\\( \b\\)?\\)\\{%d\\}" + tramp-echo-mark-marker tramp-echo-mark-marker-length) "Regexp which matches `tramp-echo-mark' as it gets echoed by the remote shell.") @@ -6562,7 +6569,14 @@ (delete-region begin (point)) (goto-char (point-min))))) - (when (not (tramp-get-connection-property proc "check-remote-echo" nil)) + (when (or (not (tramp-get-connection-property proc "check-remote-echo" nil)) + ;; Sometimes, the echo string is suppressed on the remote side. + (not (string-equal + (substring-no-properties + tramp-echo-mark-marker + 0 (min tramp-echo-mark-marker-length (1- (point-max)))) + (buffer-substring-no-properties + 1 (min (1+ tramp-echo-mark-marker-length) (point-max)))))) ;; No echo to be handled, now we can look for the regexp. (goto-char (point-min)) (re-search-forward regexp nil t))))