Yihui Xie
2023-Oct-30 16:18 UTC
[Rd] system()/system2() using short paths of commands on Windows?
Hi, It may have been so for 20+ years but I just discovered today that system() would always try to use the short path of a command on Windows: https://github.com/wch/r-source/blob/635a67/src/gnuwin32/run.c#L141 If that's true, I wonder if it could provide an option to disable this behavior, because we recently ran into a case in which short paths wouldn't work. I wonder what the original motivation of using short paths was. If it was to avoid spaces in paths, wouldn't shQuote() work? Thanks! Regards, Yihui [[alternative HTML version deleted]]
Tomas Kalibera
2023-Oct-30 17:34 UTC
[Rd] system()/system2() using short paths of commands on Windows?
On 10/30/23 17:18, Yihui Xie wrote:> Hi, > > It may have been so for 20+ years but I just discovered today that system() > would always try to use the short path of a command on Windows: > https://github.com/wch/r-source/blob/635a67/src/gnuwin32/run.c#L141 If > that's true, I wonder if it could provide an option to disable this > behavior, because we recently ran into a case in which short paths wouldn't > work. I wonder what the original motivation of using short paths was. If it > was to avoid spaces in paths, wouldn't shQuote() work? Thanks!Could you please file a minimal reproducible example that exhibits the problem caused by an attempt to translate to short path names (note there is a fallback to long path names)? In principle, short path names should work when they are returned by Windows, this should not be causing any trouble. Thanks Tomas> > Regards, > Yihui > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Prof Brian Ripley
2023-Oct-30 20:02 UTC
[Rd] system()/system2() using short paths of commands on Windows?
On 30/10/2023 16:18, Yihui Xie wrote:> Hi, > > It may have been so for 20+ years but I just discovered today that system() > would always try to use the short path of a command on Windows: > https://github.com/wch/r-source/blob/635a67/src/gnuwin32/run.c#L141 If > that's true, I wonder if it could provide an option to disable this > behavior, because we recently ran into a case in which short paths wouldn't > work. I wonder what the original motivation of using short paths was. If it > was to avoid spaces in paths, wouldn't shQuote() work? Thanks!No: system on Windows does not use a shell. The 'original motivation' was to work reliably! Back in the days of Windows 95 when many parts of Windows only supported 8+3 names.> > Regards, > Yihui > > [[alternative HTML version deleted]]Please do re-read the posting guide. It has ' been so for 20+ years '. -- Brian D. Ripley, ripley at stats.ox.ac.uk Emeritus Professor of Applied Statistics, University of Oxford
Apparently Analagous Threads
- system()/system2() using short paths of commands on Windows?
- system()/system2() using short paths of commands on Windows?
- system()/system2() using short paths of commands on Windows?
- system()/system2() using short paths of commands on Windows?
- system()/system2() using short paths of commands on Windows?