Commit 77689ea3 authored by Romain Francoise's avatar Romain Francoise
Browse files

(shell-resync-dirs): Handle echoing processes more reliably. Don't

insert resync command if `comint-process-echoes' is non-nil.
parent 4ac3afdb
2005-09-17 Romain Francoise <romain@orebokech.com>
* shell.el (shell-resync-dirs): Handle echoing processes more
reliably. Don't insert resync command if `comint-process-echoes'
is non-nil.
2005-09-17 Magnus Henoch <mange@freemail.hu>
 
* textmodes/ispell.el (ispell-aspell-supports-utf8): New variable.
......
......@@ -797,19 +797,26 @@ command again."
(let* ((proc (get-buffer-process (current-buffer)))
(pmark (process-mark proc)))
(goto-char pmark)
(insert shell-dirstack-query) (insert "\n")
;; If the process echoes commands, don't insert a fake command in
;; the buffer or it will appear twice.
(unless comint-process-echoes
(insert shell-dirstack-query) (insert "\n"))
(sit-for 0) ; force redisplay
(comint-send-string proc shell-dirstack-query)
(comint-send-string proc "\n")
(set-marker pmark (point))
(let ((pt (point))) ; wait for 1 line
(let ((pt (point))
(regexp
(concat
(if comint-process-echoes
;; Skip command echo if the process echoes
(concat "\\(" (regexp-quote shell-dirstack-query) "\n\\)")
"\\(\\)")
"\\(.+\n\\)")))
;; This extra newline prevents the user's pending input from spoofing us.
(insert "\n") (backward-char 1)
(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
;; Wait for one line.
(while (not (looking-at regexp))
(accept-process-output proc)
(goto-char pt)))
(goto-char pmark) (delete-char 1) ; remove the extra newline
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment