# HG changeset patch # User Roland McGrath # Date 747471563 0 # Node ID f4ab5299a1e4e37b31ad9a4b134c79aa1ccfacd0 # Parent 8db3c141cb626f4febeea385c1ab9b3888198d8e (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. diff -r 8db3c141cb62 -r f4ab5299a1e4 lisp/comint.el --- 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))