changeset 4675:f4ab5299a1e4

(comint-filename-prefix): New variable. (comint-replace-by-expanded-filename, comint-dynamic-complete, comint-dynamic-list-completions): Prepend it to absolute file names before completing.
author Roland McGrath <roland@gnu.org>
date Wed, 08 Sep 1993 06:59:23 +0000
parents 8db3c141cb62
children a95bec390bc3
files lisp/comint.el
diffstat 1 files changed, 36 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/comint.el	Wed Sep 08 06:22:44 1993 +0000
+++ b/lisp/comint.el	Wed Sep 08 06:59:23 1993 +0000
@@ -1148,6 +1148,10 @@
     (substitute-in-file-name
      (buffer-substring (match-beginning 0) (match-end 0)))))
 
+(defvar comint-filename-prefix nil
+  "Prefix prepended to all absolute file names taken from process input.
+This is used by the completion functions, and by directory tracking in shell
+mode.")
 
 (defun comint-replace-by-expanded-filename ()
   "Expand the filename at point.
@@ -1162,8 +1166,18 @@
   (let* ((pathname (comint-match-partial-pathname))
 	 (pathdir (file-name-directory pathname))
 	 (pathnondir (file-name-nondirectory pathname))
-	 (completion (file-name-completion pathnondir
-					   (or pathdir default-directory))))
+	 (completion (file-name-completion
+		      pathnondir
+		      (if pathdir
+			  ;; It is important to expand PATHDIR because
+			  ;; default-directory might be a handled name, and
+			  ;; the unexpanded PATHDIR won't necessarily match
+			  ;; the handler regexp.
+			  (expand-file-name (concat
+					     (if (file-name-absolute-p pathdir)
+						 comint-filename-prefix)
+					     pathdir))
+			default-directory))))
     (cond ((null completion)
 	   (message "No completions of %s" pathname)
 	   (ding))
@@ -1189,12 +1203,15 @@
 	   (pathnondir (file-name-nondirectory pathname))
 	   (completion (file-name-completion
 			pathnondir
-			;; It is important to expand PATHDIR because
-			;; default-directory might be a handled name, and the
-			;; unexpanded PATHDIR won't necessarily match the
-			;; handler regexp.
 			(if pathdir
-			    (expand-file-name pathdir)
+			    ;; It is important to expand PATHDIR because
+			    ;; default-directory might be a handled name, and
+			    ;; the unexpanded PATHDIR won't necessarily match
+			    ;; the handler regexp.
+			    (expand-file-name
+			     (concat (if (file-name-absolute-p pathdir)
+					 comint-filename-prefix)
+				     pathdir))
 			  default-directory))))
       (cond ((null completion)
 	     (message "No completions of %s" pathname)
@@ -1212,10 +1229,18 @@
 	 (pathdir (file-name-directory pathname))
 	 (pathnondir (file-name-nondirectory pathname))
 	 (completions
-	  (file-name-all-completions pathnondir
-				     (if pathdir
-					 (expand-file-name pathdir)
-				       default-directory))))
+	  (file-name-all-completions 
+	   pathnondir
+	   (if pathdir
+	       ;; It is important to expand PATHDIR because
+	       ;; default-directory might be a handled name, and
+	       ;; the unexpanded PATHDIR won't necessarily match
+	       ;; the handler regexp.
+	       (expand-file-name
+		(concat (if (file-name-absolute-p pathdir)
+			    comint-filename-prefix)
+			pathdir))
+	     default-directory))))
     (cond ((null completions)
 	   (message "No completions of %s" pathname)
 	   (ding))