Mercurial > emacs
changeset 4679:ed9240986f40
(shell-dirstack-message): Recognize ~ by matching the expansion of "~" with
comint-filename-prefix prepended. Strip comint-filename-prefix from elts.
author | Roland McGrath <roland@gnu.org> |
---|---|
date | Wed, 08 Sep 1993 07:39:14 +0000 |
parents | cd842296bebf |
children | 9d56bce1534a |
files | lisp/shell.el |
diffstat | 1 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/shell.el Wed Sep 08 07:09:00 1993 +0000 +++ b/lisp/shell.el Wed Sep 08 07:39:14 1993 +0000 @@ -522,12 +522,21 @@ ;;; All the commands that mung the buffer's dirstack finish by calling ;;; this guy. (defun shell-dirstack-message () - (let ((msg "") - (ds (cons default-directory shell-dirstack))) + (let* ((msg "") + (ds (cons default-directory shell-dirstack)) + (home (expand-file-name (concat comint-filename-prefix "~/"))) + (homelen (length home))) (while ds (let ((dir (car ds))) - (if (string-match (format "^%s\\(/\\|$\\)" (getenv "HOME")) dir) - (setq dir (concat "~/" (substring dir (match-end 0))))) + (and (>= (length dir) homelen) (string= home (substring dir 0 homelen)) + (setq dir (concat "~/" (substring dir homelen)))) + ;; Strip off comint-filename-prefix if present. + (and comint-filename-prefix + (>= (length dir) (length comint-filename-prefix)) + (string= comint-filename-prefix + (substring dir 0 (length comint-filename-prefix))) + (setq dir (substring dir (length comint-filename-prefix))) + (setcar ds dir)) (if (string-equal dir "~/") (setq dir "~")) (setq msg (concat msg dir " ")) (setq ds (cdr ds))))