GNU bug report logs -
#11348
24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows
Previous Next
Reported by: Eli Zaretskii <eliz <at> gnu.org>
Date: Thu, 26 Apr 2012 11:12:02 UTC
Severity: normal
Found in version 24.0.95
Fixed in version 24.0.97
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Eli Zaretskii <eliz <at> gnu.org> writes:
>> The black magic occurs in `comint--complete-file-name-data' in
>> comint.el. You could first try to evaluate
>>
>> (completion-file-name-table "d:\gnu" nil t)
>>
>> and see if that does something funny.
>
> Thanks, I will take a look.
FWIW, here is my impression. Emacs 23.4 has the following code in
`comint-dynamic-complete-as-filename':
(let ((file (concat (file-name-as-directory directory) completion)))
;; Insert completion. Note that the completion string
;; may have a different case than what's in the prompt,
;; if read-file-name-completion-ignore-case is non-nil,
(delete-region filename-beg filename-end)
(if filedir (insert (comint-quote-filename filedir)))
If I'm not mistaken, this is the part that turns d:\gnu into d:/gnu.
Emacs 24 uses the completion-at-point mechanism. The equivalent code
responsible for replacing the quoted prefix is (IIUC) the `prefixes'
stuff in comint--complete-file-name-data, around comint.el:3178.
That's probably where the bug lies.
This bug report was last modified 13 years and 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.