Stefan Monnier wrote:
It could, but it doesn't want to. In Emacs, the canonical directory
separator is / (although \ is made to work as well under w32, for obvious
interoperability reasons).
You make it sound like / and \ both work in Windows, but they don't:
They do if you use another shell ;-)
(IIUC the API-level functions in w32 understand / just fine, it's only
the/some shells which insist on using \ exclusively).
If shell-mode could use backslash when completing on w32 it would be a
lot more useful.
I'll let the w32 people decide. I was just explaining the
current situation.
It is clearly a bug when using cmd.exe for the shell (cmdproxy.exe
really). I think it need to be corrected.
I believe the problem is in comint-dynamic-complete-as-filename. The let
variable dirsuffix has a hardcoded "/". Maybe a fix could look like this
(dirsuffix (cond ((not comint-completion-addsuffix)
"")
((not (consp comint-completion-addsuffix))
(if (w32-shell-dos-semantics)
"\\"
"/"))
but I am not sure at all. Even if this is correct however I think that
shell-file-name and explicit-shell-file-name must be made buffer local
in the interactive shell buffers. (And did I not mention before that
w32-shell-dos-semantics needs to test explicit-shell-file-name too?)
_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug