diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2008-08-26 23:49:01 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2008-08-26 23:49:01 +0000 |
commit | 4ecc814eaf3175c163e5d4769e52b6375bff14da (patch) | |
tree | 7f6af1b6d1f78d16676ae3b27062170773f81f24 /lisp/comint.el | |
parent | a7dadf13ed82f9e3e93a5e3cdbb6bc1eafc673f0 (diff) | |
download | emacs-4ecc814eaf3175c163e5d4769e52b6375bff14da.tar.gz emacs-4ecc814eaf3175c163e5d4769e52b6375bff14da.tar.bz2 emacs-4ecc814eaf3175c163e5d4769e52b6375bff14da.zip |
(comint-dynamic-complete-as-filename): If case is ignored while
matching, replace the entire filename with completion.
Diffstat (limited to 'lisp/comint.el')
-rw-r--r-- | lisp/comint.el | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lisp/comint.el b/lisp/comint.el index 00528f38ab0..b8e73cb6b78 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -2821,7 +2821,10 @@ See `comint-dynamic-complete-filename'. Returns t if successful." " ") (t (cdr comint-completion-addsuffix)))) - (filename (or (comint-match-partial-filename) "")) + (filename (comint-match-partial-filename)) + (filename-beg (if filename (match-beginning 0))) + (filename-end (if filename (match-end 0))) + (filename (or filename "")) (filedir (file-name-directory filename)) (filenondir (file-name-nondirectory filename)) (directory (if filedir (comint-directory filedir) default-directory)) @@ -2839,9 +2842,19 @@ See `comint-dynamic-complete-filename'. Returns t if successful." (comint-dynamic-list-filename-completions)) (t ; Completion string returned. (let ((file (concat (file-name-as-directory directory) completion))) + (if (or (null read-file-name-completion-ignore-case) + (null filename-beg) + (null filename-end)) + (insert (comint-quote-filename + (substring (directory-file-name completion) + (length filenondir))))) + ;; If read-file-name-completion-ignore-case is non-nil, + ;; the completion string may have a different case than + ;; what's in the prompt. + (delete-region filename-beg filename-end) + (if filedir (insert filedir)) (insert (comint-quote-filename - (substring (directory-file-name completion) - (length filenondir)))) + (directory-file-name completion))) (cond ((symbolp (file-name-completion completion directory)) ;; We inserted a unique completion. (insert (if (file-directory-p file) dirsuffix filesuffix)) |