]> git.eshelyaron.com Git - emacs.git/commitdiff
(shell-resync-dirs): Tolerate an extra line of output before the list of
authorJuanma Barranquero <lekktu@gmail.com>
Fri, 6 Jun 2003 17:39:46 +0000 (17:39 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Fri, 6 Jun 2003 17:39:46 +0000 (17:39 +0000)
directories from `shell-dirstack-query' (it looks for, and ignores, a literal
copy of the value of shell-dirstack-query).

lisp/shell.el

index 154c4ff46eb9cf3d3e418891d8bec3b24e4d7ffb..9905fde371216769529b10652b0f5ec4c67d2fa3 100644 (file)
@@ -791,12 +791,16 @@ command again."
     (let ((pt (point))) ; wait for 1 line
       ;; This extra newline prevents the user's pending input from spoofing us.
       (insert "\n") (backward-char 1)
-      (while (not (looking-at ".+\n"))
+      (while (not (looking-at
+                  (concat "\\(" ; skip literal echo in case of stty echo
+                          (regexp-quote shell-dirstack-query)
+                          "\n\\)?" ; skip if present
+                          "\\(" ".+\n" "\\)")) ) ; what to actually look for
        (accept-process-output proc)
        (goto-char pt)))
     (goto-char pmark) (delete-char 1) ; remove the extra newline
     ;; That's the dirlist. grab it & parse it.
-    (let* ((dl (buffer-substring (match-beginning 0) (1- (match-end 0))))
+    (let* ((dl (buffer-substring (match-beginning 2) (1- (match-end 2))))
           (dl-len (length dl))
           (ds '())                     ; new dir stack
           (i 0))