Public bug reported:

Our treatment of paths breaks on the Windows native "port" of XEmacs
because:

A. We assume a path separator of `?/', whereas the win32 native "port"
of XEmacs (unlike that of GNU Emacs) uses `?\\'. It can be rebound to
`?/', but `start-process' and friends currently (XEmacs 21.5 (beta29)
"garbanzo") seem to fail when you do this, because they try to run
cmd.exe with /-based paths,which of course fails because it treats '/'
as a flag-introducer, by ancient contract.

B. We (seem to) conflate the platform-native shell escaping conventions
with those of a POSIXy "sh". In a strange twist, the case(s) I've seen
look like they try to pass natively-escaped paths to "sh", rather than
the other way 'round. However, it doesn't seem to be quite as simple as
it sounds, since when I tried rebinding `system-type' to something other
than 'windows-nt around the call to `shell-quote-argument', things got
worse...

It also wouldn't help that the usual temporary directories on Windows
tend to have spaces in them. ("C:\Documents and Settings\..."), though
currently we have a hardwired default of "/tmp" anyway, so this doesn't
actually hurt yet. When I tried to change the code to use the proper
directory, however, things broke BAD, and I couldn't visit any files in
a bzr working tree -- for example, I couldn't go back into dvc-utils.el
to "fix" the problem.

One quick way to see this go wrong is (or will be, after I commit and
push my other changes to make dvc work at all in Windows XEmacs) to run
`dvc-diff' in a bzr tree, mark some files, and then try and commit.

** Affects: dvc
     Importance: Undecided
         Status: New

-- 
Path handling broken on Windows native XEmacs
https://bugs.launchpad.net/bugs/663647
You received this bug notification because you are a member of dvc-dev,
which is the registrant for dvc.

Status in Distributed Version Control for Emacs: New

Bug description:
Our treatment of paths breaks on the Windows native "port" of XEmacs because:

A. We assume a path separator of `?/', whereas the win32 native "port" of 
XEmacs (unlike that of GNU Emacs) uses `?\\'. It can be rebound to `?/', but 
`start-process' and friends currently (XEmacs 21.5 (beta29) "garbanzo") seem to 
fail when you do this, because they try to run cmd.exe with /-based paths,which 
of course fails because it treats '/' as a flag-introducer, by ancient contract.

B. We (seem to) conflate the platform-native shell escaping conventions with 
those of a POSIXy "sh". In a strange twist, the case(s) I've seen look like 
they try to pass natively-escaped paths to "sh", rather than the other way 
'round. However, it doesn't seem to be quite as simple as it sounds, since when 
I tried rebinding `system-type' to something other than 'windows-nt around the 
call to `shell-quote-argument', things got worse...

It also wouldn't help that the usual temporary directories on Windows tend to 
have spaces in them. ("C:\Documents and Settings\..."), though currently we 
have a hardwired default of "/tmp" anyway, so this doesn't actually hurt yet. 
When I tried to change the code to use the proper directory, however, things 
broke BAD, and I couldn't visit any files in a bzr working tree -- for example, 
I couldn't go back into dvc-utils.el to "fix" the problem.

One quick way to see this go wrong is (or will be, after I commit and push my 
other changes to make dvc work at all in Windows XEmacs) to run `dvc-diff' in a 
bzr tree, mark some files, and then try and commit.



_______________________________________________
Dvc-dev mailing list
[email protected]
https://mail.gna.org/listinfo/dvc-dev

Reply via email to