]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp.el (tramp-echo-mark-marker-length): New defconst.
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 15 Dec 2009 21:11:39 +0000 (21:11 +0000)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 15 Dec 2009 21:11:39 +0000 (21:11 +0000)
(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.

lisp/ChangeLog
lisp/net/tramp.el

index 671f792a4da4fff1d0fbca914075c7dc9da22de3..26ff5d4c7cecd5574127286c793ab8935ace9490 100644 (file)
@@ -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).
index 8bc010d29b22a9aa384bded4e3114f85ec37b5d7..6d3465c6a19dc4f076d3252848c8be8890699dac 100644 (file)
@@ -948,7 +948,12 @@ the info pages.")
 (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 @@ producing some echo which can later be detected by
 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 @@ Erase echoed commands if exists."
          (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))))