# HG changeset patch # User Juanma Barranquero # Date 1054921186 0 # Node ID 9933cebac174608a31795437f6ec870ea2cf1d2a # Parent 32a1c48ca0b9a9ac8970fc49f3d0e86cf7273536 (shell-resync-dirs): Tolerate an extra line of output before the list of directories from `shell-dirstack-query' (it looks for, and ignores, a literal copy of the value of shell-dirstack-query). diff -r 32a1c48ca0b9 -r 9933cebac174 lisp/shell.el --- a/lisp/shell.el Fri Jun 06 16:13:31 2003 +0000 +++ b/lisp/shell.el Fri Jun 06 17:39:46 2003 +0000 @@ -791,12 +791,16 @@ (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))