summaryrefslogtreecommitdiff
path: root/lisp/comint.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1996-06-05 18:24:14 +0000
committerRichard M. Stallman <rms@gnu.org>1996-06-05 18:24:14 +0000
commitccb8e94ed8abbed567b3dec6448fdc7aeb791664 (patch)
treeb3137afe75280959db0487129bc79666908e5640 /lisp/comint.el
parent1480197dbff0eaecd1306ea9ee966be68ba4cbe8 (diff)
downloademacs-ccb8e94ed8abbed567b3dec6448fdc7aeb791664.tar.gz
(comint-dynamic-complete-filename) [ms-dos, windows-nt]:
Always use backslash as a directory separator when completing in shell mode on these systems. (comint-unquote-filename): Handle quoted backslashes.
Diffstat (limited to 'lisp/comint.el')
-rw-r--r--lisp/comint.el17
1 files changed, 11 insertions, 6 deletions
diff --git a/lisp/comint.el b/lisp/comint.el
index fca83137fdd..c7522fefff7 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1880,8 +1880,10 @@ Magic characters are those in `comint-file-name-quote-list'."
(if (null comint-file-name-quote-list)
filename
(save-match-data
- (while (string-match "\\\\\\(.\\)" filename)
- (setq filename (replace-match "\\1" nil nil filename)))
+ (let ((i 0))
+ (while (string-match "\\\\\\(.\\)" filename i)
+ (setq filename (replace-match "\\1" nil nil filename))
+ (setq i (+ 1 (match-beginning 0)))))
filename)))
@@ -1910,10 +1912,13 @@ completions listing is dependent on the value of `comint-completion-autolist'.
Returns t if successful."
(interactive)
(if (comint-match-partial-filename)
- (prog2 (or (window-minibuffer-p (selected-window))
- (message "Completing file name..."))
- (comint-dynamic-complete-as-filename))))
-
+ (let ((directory-sep-char ?/))
+ (if (memq system-type '(ms-dos windows-nt))
+ ; The default shells on these systems require backslashed names
+ (setq directory-sep-char ?\\))
+ (prog2 (or (window-minibuffer-p (selected-window))
+ (message "Completing file name..."))
+ (comint-dynamic-complete-as-filename)))))
(defun comint-dynamic-complete-as-filename ()
"Dynamically complete at point as a filename.