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))))