mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
(shell-resync-dirs): Handle echoing processes more reliably. Don't
insert resync command if `comint-process-echoes' is non-nil.
This commit is contained in:
parent
4ac3afdb5a
commit
77689ea32d
@ -1,3 +1,9 @@
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user