Mercurial > emacs
changeset 16960:8c56da3f7f7f
(dirtrack-debug-message): Put output at end of buffer.
(dirtrack): Check that directory exists before trying to cd to it.
Go to point-max (not comint-last-output-start) before looking for
the prompt.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 01 Feb 1997 20:26:01 +0000 |
parents | d04999ad25b9 |
children | 6e1ae1c00446 |
files | lisp/dirtrack.el |
diffstat | 1 files changed, 18 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/dirtrack.el Sat Feb 01 20:02:16 1997 +0000 +++ b/lisp/dirtrack.el Sat Feb 01 20:26:01 1997 +0000 @@ -5,7 +5,7 @@ ;; Author: Peter Breton ;; Created: Sun Nov 17 1996 ;; Keywords: processes -;; Time-stamp: <96/12/26 09:23:01 peter> +;; Time-stamp: <97/02/01 20:35:06 peter> ;; This file is part of GNU Emacs. @@ -170,6 +170,7 @@ (debug-buf (get-buffer-create dirtrack-debug-buffer)) ) (set-buffer debug-buf) + (goto-char (point-max)) (insert (concat string "\n")) (set-buffer buf) )) @@ -181,7 +182,7 @@ (let ((prompt-path) (current-dir default-directory) (matched) - (dirtrack-regexp (nth 0 dirtrack-list)) + (dirtrack-regexp (nth 0 dirtrack-list)) (match-num (nth 1 dirtrack-list)) (multi-line (nth 2 dirtrack-list)) ) @@ -189,16 +190,14 @@ (if (eq (point) (point-min)) nil (save-excursion - (goto-char comint-last-output-start) + (goto-char (point-max)) ;; Look for the prompt (if multi-line - (and - (goto-char (point-max)) - (setq matched - (re-search-backward - dirtrack-regexp - comint-last-output-start - t))) + (setq matched + (re-search-backward + dirtrack-regexp + comint-last-output-start + t)) (beginning-of-line) (setq matched (looking-at dirtrack-regexp))) ;; No match @@ -232,11 +231,15 @@ (and dirtrack-debug (dirtrack-debug-message (format "Not changing directory"))) - ;; Change directory - (shell-process-cd prompt-path) - (and dirtrack-debug - (dirtrack-debug-message - (format "Changing directory to %s" prompt-path)))) + ;; It's possible that Emacs will think the directory + ;; won't exist (eg, rlogin buffers) + (if (file-accessible-directory-p prompt-path) + ;; Change directory + (and (shell-process-cd prompt-path) + dirtrack-debug + (dirtrack-debug-message + (format "Changing directory to %s" prompt-path))) + (error "Directory %s does not exist" prompt-path))) ))))))) (provide 'dirtrack)