(let* ((completion-ignore-case nil)
(completion-ignored-extensions comint-completion-fignore)
(success t)
- (filename (or (comint-match-partial-filename) ""))
- (pathdir (file-name-directory filename))
- (pathnondir (file-name-nondirectory filename))
- (directory (if pathdir (comint-directory pathdir) default-directory))
- (completion (file-name-completion pathnondir directory)))
+ (filename (comint-match-partial-filename))
+ endpos pathdir pathnondir directory completion)
+ (setq endpos (if filename (match-end 0) (point)))
+ (or filename (setq filename ""))
+ (setq pathdir (file-name-directory filename)
+ pathnondir (file-name-nondirectory filename)
+ directory (if pathdir (comint-directory pathdir) default-directory)
+ completion (file-name-completion pathnondir directory))
(cond ((null completion)
(message "No completions of %s" filename)
(setq success nil))
(comint-dynamic-list-filename-completions))
(t ; Completion string returned.
(let ((file (concat (file-name-as-directory directory) completion)))
- (goto-char (match-end 0))
+ (goto-char endpos)
(insert (substring (directory-file-name completion)
(length pathnondir)))
(cond ((symbolp (file-name-completion completion directory))