Big list of software that cannot handle spaces or accents in paths
-
-
Gyp. Again. For years. It won't compile libsass because of where visual studio is installed.
-
Posting here too... (Because it make me go WTF first!)
Visual Studio.
-
You left out the important bit:
[...] my user profile as
C:\users\David MyLastName\
-
@Zecc said in Big list of software that cannot handle spaces or accents in paths:
You left out the important bit:
[...] my user profile as
C:\users\David MyLastName\
I linkyed!
-
@dcon : blame your parents. Including a space in your name, seriously? Did they hate you and wanted to set you up for a life of pain?
-
@Zerosquare said in Big list of software that cannot handle spaces or accents in paths:
@dcon : blame your parents. Including a space in your name, seriously? Did they hate you and wanted to set you up for a life of pain?
Obviously. But at least I'm not named Bobby!
-
NFS.
Because, fstab entries are space-delimited, you have to escape spaces with \040` and accents with other arcane octal escapes.
Because quotes are a valid character for filenames, and compatibility with that must be preserved.
Of course, compatibility must be preserved forward, so Linux and BSD still have this limitation.
Thanks, Unix!
-
Fixed issues opening files with spaces in their path
-
Status: NodeBB forgot I had visited this thread.
-
Fixed issues opening files with spaces in their path (bug 1601905)
Looks like it was a recent regression, not an old bug.
-
@levicki said in Big list of software that cannot handle spaces or accents in paths:
Oh man...
Apparently, Task Scheduler in Windows Server 2019 can't handle spaces in path as well:
EDIT: To be honest, this was manually entered path, if you Browse to a file it quotes the path you select. But still, weird requirement.
Iām on mobile and canāt check, but judging from the message box the dialog contains a separate field for program path and arguments. So having to quote the path makes absolutely zero sense.
-
@topspin said in Big list of software that cannot handle spaces or accents in paths:
@levicki said in Big list of software that cannot handle spaces or accents in paths:
Oh man...
Apparently, Task Scheduler in Windows Server 2019 can't handle spaces in path as well:
EDIT: To be honest, this was manually entered path, if you Browse to a file it quotes the path you select. But still, weird requirement.
Iām on mobile and canāt check, but judging from the message box the dialog contains a separate field for program path and arguments. So having to quote the path makes absolutely zero sense.
Repro, Windows 10 (AKA Windows Server 2019 Client):
This is indeed fucking dumb.
Edit: However, if you click "No" it does the needful and adds the quotes for you.
-
@levicki said in Big list of software that cannot handle spaces or accents in paths:
@topspin said in Big list of software that cannot handle spaces or accents in paths:
the dialog contains a separate field for program path and arguments.
Yes it does.
@Tsaukpaetra said in Big list of software that cannot handle spaces or accents in paths:
This is indeed fucking dumb.
Yeah, why the hell does it need quotes for PROGRAM path? That's so last century.
It's secretly concatenating the three fields together, they just don't want you to know that.
-
@Tsaukpaetra said in Big list of software that cannot handle spaces or accents in paths:
It's
secretlyevidently doing a poor job of doing something as simple as concatenating the three fields together
-
@levicki said in Big list of software that cannot handle spaces or accents in paths:
@Tsaukpaetra said in Big list of software that cannot handle spaces or accents in paths:
It's secretly concatenating the three fields together, they just don't want you to know that.
I wouldn't know that even if they added quotes only while concatenating and left the strings as they are in those 3 boxes, no?
Actually you might since it displays the resultant text in the Actions table. I don't recall if the exported XML also displays this that way too...
-
@levicki said in Big list of software that cannot handle spaces or accents in paths:
Oh man...
Apparently, Task Scheduler in Windows Server 2019 can't handle spaces in path as well:
EDIT: To be honest, this was manually entered path, if you Browse to a file it quotes the path you select. But still, weird requirement.
Isnāt this something that Windows shortcut properties etc. have also had problems with since just about forever?
-
Anaconda, the major data-science/big-data package for python.
-
@Benjamin-Hall said in Big list of software that cannot handle spaces or accents in paths:
Anaconda, the major data-science/big-data package for python.
"or unicode characters"? What? So I can't use ordinary letters and numbers, all of which are Unicode characters ?!?
EDIT: yes, I know what they mean, but the way they express it is just ... wrong.
-
@Steve_The_Cynic said in Big list of software that cannot handle spaces or accents in paths:
I know what they mean, but the way they express it is just ... wrong.
It's Pythonic!
-
@Benjamin-Hall said in Big list of software that cannot handle spaces or accents in paths:
Install Anaconda to a directory path that does not contain spaces or unicode characters.ā¦ the funny thing is that in Windows, every path can be expressed without spaces or non-ascii characters as there is the āDOSā form. I've been using that to great effect, with help of Cygwin's/MSys2's
cygpath
command, to get all sort of things that either didn't handle space (anythingmake
-based) or if the normal path was too long (because the normal interface is very limited and the DOS form abbreviates most components to 8 characters).Just the other day I wished Linux had it as wellābecause
make
still does not handle spaces in paths, and Jenkins creates them by defaultā¦ (intent to work around by containerization, but it takes a lot of round toits).
-
@Tsaukpaetra said in Big list of software that cannot handle spaces or accents in paths:
This is indeed fucking dumb.
One rationale I can think of is that someone really really really wanted copy-pasting complete command lines (from batch scripts, from internet, whatever) to work, while another someone really really really wanted separate textbox for arguments. So a compromise was made that nobody liked.
-
@levicki said in Big list of software that cannot handle spaces or accents in paths:
Yeah, why the hell does it need quotes for PROGRAM path? That's so last century.
-
@Bulb said in Big list of software that cannot handle spaces or accents in paths:
the funny thing is that in Windows, every path can be expressed without spaces or non-ascii characters as there is the āDOSā form.
Not necessarily.
fsutil.exe behavior set disable8dot3 1
is a thing.
-
@dcon Why on is that thing configurable? So you can shoot yourself in the foot?
-
@Bulb said in Big list of software that cannot handle spaces or accents in paths:
@dcon Why on is that thing configurable? So you can shoot yourself in the foot?
-
Ok, some people claim the gain isn't that big (for many people it probably isn't; for programmers and for those with huge musical collections there should be) and some claim it should be gone with SSDs (it definitely won'tāWindows always had massive overhead over the raw disk performance). But the graphs are correct, what it really means is that they way they added it is a massive, huge, two-butts-behind-a-tree-ugly hack. Because the graphs show an order of magnitude gain and it simply makes no sense to have such a big overhead for filtering some auxiliary entries.
-
@Bulb said in Big list of software that cannot handle spaces or accents in paths:
Just the other day I wished Linux had it as well
The way I imagine Linux doing that is having a special filesystem (probably in /sys/) that mirrors the main filesystem except names are shortened in a similar way as Windows does. And that should be easy to implement if you really want it.
-
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
And that should be easy to implement if you really want it.
Beware: if anyone does want it and it turns out to be popular (or deployed in the enterprise) then we'll get lots of threads here about itā¦
-
@dkf Actually I think I greatly overengineered that.
Linux filesystems would simply roll out an option that would make "_" and " " function as identical characters. All Linux distros would enable it by default. People complaining of breakage would be told they're just Stupid Windows Usersā¢ and to just accept that this is how we do things here, or be told to manually disable that setting and stop complaining.
-
@anonymous234 Hack KDE and Gnome to use a font that renders underscore the same as space. Job Done!
-
@dkf KDE and Gnome both implement their own filesystem abstraction layers so there's no need for such hackery.
-
@anonymous234 Which is exactly why you do it that way. It ensures that user preferences are met, whatever those nasty old software authors think!
(This reminds me of when I first started dealing with Russian localization. The standard method then was ājust change the fontā, which is fucking useless for software systems that communicate worldwide.)
-
@dkf So we're all in agreement then: we'll do it at filesystem level, at Gnome/KDE level and at text rendering level with custom fonts. In fact we could add some metadata to each file that specifies which font its name should be rendered with.
I suggest we also add a kernel-wide filter to replace strings in file names with other strings, and some flags you can pass to open() to override those settings just for extra flexibility.
...and can we just add some basic HTML markup to file names while we're at it?
-
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
...and can we just add some basic HTML markup to file names while we're at it?
Sure. I've seen ANSI escapes in there too, so HTML is not so great a sin.
-
@dkf said in Big list of software that cannot handle spaces or accents in paths:
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
And that should be easy to implement if you really want it.
Beware: if anyone does want it and it turns out to be popular (or deployed in the enterprise) then we'll get lots of threads here about itā¦
When things are sane, I prefer sane solutions. But when they start sliding through insane towards raving mad, I can certainly appreciate some nasty hack (of which I may still make fun here, but it will be way better than poke in the eye).
-
@dkf said in Big list of software that cannot handle spaces or accents in paths:
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
...and can we just add some basic HTML markup to file names while we're at it?
Sure. I've seen ANSI escapes in there too, so HTML is not so great a sin.
touch `echo -e '^[[1;31mimportant^[[0m'`
-
@Bulb
I can kinda see it happening in the first graph...? Since the Neowin just hotlinked the image from another site which just posted it without any attribution either, let alone methodology, I had to dig around for the source:
but the author forgets to directly link the presentation he mentions:
It might say why disabling 8.3 names has such a big impact but it's an hour long and . My wilfully uninformed guess is that the 8.3 names aren't properly indexed, and every time one is created the entire directory has to be scanned for possible collisions; and since shortening the name isn't reversible, access by short name also needs a full scan. Admittedly, that would only explain the left-hand graph.
-
@Watson I am somewhat confident that back when they extended FAT to VFAT for Windows 95, the short names were stored in the normal place for filename in FAT and the long name was in the extension. So one would expect they would add it by design to a new filesystem, and thus do it reasonably efficiently. But since WinNT coexisted with Win95, NTFS might have already existed and therefore it might have been added as an ugly hack there (too) (does not really excuse not doing a filesystem update from NT to XP though).
-
@dkf said in Big list of software that cannot handle spaces or accents in paths:
This reminds me of when I first started dealing with Russian localization. The standard method then was ājust change the fontā, which is fucking useless for software systems that communicate worldwide.
ŠøŠŠŠŠŠŠ ŠŠŠŠŠ¦Š. Š±ŠŠ Š¦ŠŠŠŠŠŠ ŠŠ Š¤ŠŠŠ ŠŠŠŠ, eh?
-
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
add some metadata to each file that specifies which font its name should be rendered with.
Obviously Comic Sans.
-
@dcon At least if the file is go source or logjam text.
-
@Watson said in Big list of software that cannot handle spaces or accents in paths:
@Bulb
I can kinda see it happening in the first graph...? Since the Neowin just hotlinked the image from another site which just posted it without any attribution either, let alone methodology, I had to dig around for the source:
but the author forgets to directly link the presentation he mentions:
It might say why disabling 8.3 names has such a big impact but it's an hour long and . My wilfully uninformed guess is that the 8.3 names aren't properly indexed, and every time one is created the entire directory has to be scanned for possible collisions; and since shortening the name isn't reversible, access by short name also needs a full scan. Admittedly, that would only explain the left-hand graph.
1M files is a very large directory. I would not be surprised if windows is not optimized to handle that directory size quickly.
I would not expect a full scan to be needed when creating a file, as you can do a targeted check for each potential FILENA~1.EXT, FILENA~2.EXT, etc. Though NTFS actually uses a different file name pattern, I wouldn't expect it to be less optimal in that regard.
When reading a directory however, it is probably needed to verify for each 8.3 name whether an accompanying long name exists, and that would be required as long as paired 8.3 and long names exist in the file system. This would require nested loops over the directory list (hopefully cached in memory).
-
@PleegWat said in Big list of software that cannot handle spaces or accents in paths:
1M files is a very large directory. I would not be surprised if windows is not optimized to handle that directory size quickly.
It is big, and windows is not optimized for it. But either the ratio of times is the same as for smaller directoriesāin which case it is way too big for a sensible solutionāor the difference grows with directory size, which does not sound like a sane solution either.
@PleegWat said in Big list of software that cannot handle spaces or accents in paths:
When reading a directory however, it is probably needed to verify for each 8.3 name whether an accompanying long name exists, and that would be required as long as paired 8.3 and long names exist in the file system. This would require nested loops over the directory list (hopefully cached in memory).
It is not verifying the long names exist for short names, because it is returning the long names first and looking up the short names if they exist and differ. For some reason the lookup is massively inefficient.
-
@Bulb It's bound to be an algorithmic complexity issue somewhere. Most likely the implemented solution is O(nĀ²), and the ideal solution is O(n log(n)) but has higher upfront costs so the O(nĀ²) solution is faster in most common usecases and simpler to implement to boot.
-
@PleegWat said in Big list of software that cannot handle spaces or accents in paths:
@Bulb It's bound to be an algorithmic complexity issue somewhere. Most likely the implemented solution is O(nĀ²), and the ideal solution is O(n log(n)) but has higher upfront costs so the O(nĀ²) solution is faster in most common usecases and simpler to implement to boot.
Actually I don't think so. A 1M files would blow up completely on a quadratic algorithm.
-
@dkf said in Big list of software that cannot handle spaces or accents in paths:
@anonymous234 said in Big list of software that cannot handle spaces or accents in paths:
...and can we just add some basic HTML markup to file names while we're at it?
Sure. I've seen ANSI escapes in there too, so HTML is not so great a sin.
But I donāt know HTML and prefer {\b\i \u RTF escapes}! Shirley it should cater to that tooā½
-
@PleegWat said in Big list of software that cannot handle spaces or accents in paths:
Though NTFS actually uses a different file name pattern, I wouldn't expect it to be less optimal in that regard.
So I checked my storage drive to see whether or not it was storing 8.3, and it complained about registry keys storing short names. Short names such as:
\\?\D:\wd\in\BuildChunkArtifact\1f01e648-1924-ec01-df7c-dde3d862bd98\amd64fre\NEUTRAL_FEATURES_ON_DEMAND\cabs\OpenSSH-Client-Package~53e463da6583fb13~amd64~~.cab D:\z\drop\math.unm.edu\~wester\cas\book\Critique of the mathematical abilities of CA systems.pdf
8.3
-
@Watson
/^([A-Z]:)?\\.*~.*/
-
@levicki I would not even be surprised if the actual check used is
strchr(value, '~')
. Or whatever the C++ idiomatic way of writing that is.