Is "+" safe for file names?

Just noticed this directory name: libs/filesystem/test/vc++.boost.filesystem Is "+" safe to use across file systems? Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems? -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

Rene Rivera wrote:
Is "+" safe to use across file systems? Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
The vanilla CD filesystem ISO 9660 don't like the plus sign, which is fairly annoying if you want to burn files containing it to a portable CD without archiving it first.

Aaron W. LaFramboise wrote:
Rene Rivera wrote:
Is "+" safe to use across file systems? Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
The vanilla CD filesystem ISO 9660 don't like the plus sign, which is fairly annoying if you want to burn files containing it to a portable CD without archiving it first.
IIRC the restriction on CD file naming (among others) drove our naming rules, so we should ban '+' if we haven't done it already. -- Dave Abrahams BoostPro Computing http://www.boostpro.com

Rene Rivera wrote:
Just noticed this directory name:
libs/filesystem/test/vc++.boost.filesystem
Is "+" safe to use across file systems?
No, not in general.
Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
IIRC, there are several legacy file systems that don't support multiple periods. I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming. Thanks, --Beman

Beman Dawes wrote:
Rene Rivera wrote:
Just noticed this directory name:
libs/filesystem/test/vc++.boost.filesystem
Is "+" safe to use across file systems?
No, not in general.
Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
IIRC, there are several legacy file systems that don't support multiple periods.
I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming.
I thought we had a pre-commit hook that would reject such files? -- Dave Abrahams BoostPro Computing http://www.boostpro.com

Beman Dawes wrote:
IIRC, there are several legacy file systems that don't support multiple periods.
I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming.
You missed one... === Added: C:\DevRoots\Boost\boost\libs\filesystem\test\boost_filesystem_msvc\vc++.boost.filesystem.sln === -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

On Jun 27, 2008, at 12:17 PM, Beman Dawes wrote:
Rene Rivera wrote:
Just noticed this directory name: libs/filesystem/test/vc++.boost.filesystem Is "+" safe to use across file systems?
No, not in general.
Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
IIRC, there are several legacy file systems that don't support multiple periods.
I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming.
So, should we add a rule about non-ISO9660 names to our file-checking program, and maybe the subversion pre-commit hook (as Dave said)? -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com

Daryle Walker wrote:
On Jun 27, 2008, at 12:17 PM, Beman Dawes wrote:
Rene Rivera wrote:
Just noticed this directory name: libs/filesystem/test/vc++.boost.filesystem Is "+" safe to use across file systems?
No, not in general.
Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems?
IIRC, there are several legacy file systems that don't support multiple periods.
I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming.
So, should we add a rule about non-ISO9660 names to our file-checking program, and maybe the subversion pre-commit hook (as Dave said)?
I vote yes -- Dave Abrahams BoostPro Computing http://www.boostpro.com

David Abrahams wrote:
Daryle Walker wrote:
On Jun 27, 2008, at 12:17 PM, Beman Dawes wrote:
Rene Rivera wrote:
Just noticed this directory name: libs/filesystem/test/vc++.boost.filesystem Is "+" safe to use across file systems? No, not in general.
Hm, actually I'm fairly sure more than one "." is not safe. For example in the MVS systems? IIRC, there are several legacy file systems that don't support multiple periods.
I'll change the offending name. It was one I use internally, and decided to add to SVN without reconsidering the naming. So, should we add a rule about non-ISO9660 names to our file-checking program, and maybe the subversion pre-commit hook (as Dave said)?
I vote yes
We need to decide what our standard is first. ISO-9660:1999 limits: * Allowable characters characters are uppercase A-Z, 0-9, and underscore. Popular operating systems extend these to at least lowercase letters, but usually allow more punctuation characters. * File names shall not include spaces. * File names shall not start or end with the dot character. * File names shall not have more than one dot. * Directory names shall not use dots at all. If we allow lowercase letters, and add a restriction that the first character has to be a letter or number, but otherwise stick with ISO-9660:1999, 1.35.0 would have 773 violations. See http://mysite.verizon.net/beman/temp.html If we also allow '-', that would cut the violations to 130. See http://mysite.verizon.net/beman/temp1.html Note that a-z, A-Z, 0-9, dot, hyphen, and underscore correspond to the POSIX portable file name requirements. So that seems to be a natural cut-off point for the allowable characters. Do we also want to drop the "File names shall not have more than one dot" and/or "Directory names shall not use dots at all" requirements? Have we have ever had a complaint about multiple dots in file or directory names? --Beman

On 01/07/2008, Beman Dawes <bdawes@acm.org> wrote:
If we allow lowercase letters, and add a restriction that the first character has to be a letter or number
It would be nice to allow the first character to be an underscore. It's an 'allowable' character. We should probably also disallow file names which only differ by case. Although, they'd probably show up pretty quickly so maybe we don't need to.
but otherwise stick with ISO-9660:1999, 1.35.0 would have 773 violations. See http://mysite.verizon.net/beman/temp.html
If we also allow '-', that would cut the violations to 130. See http://mysite.verizon.net/beman/temp1.html
A lot of those violations are in the boostbook based documentation. I've already changed it so that it won't generate filenames with spaces and can do the same for other characters - the filenames will be less useful but that's not really a problem. I've also been working on a better method of generating the file names, which can limit the length of file and directory names. It's in the doc branch (https://svn.boost.org/trac/boost/changeset/46022/) and I was planning on including it in 1.37 (if no one objected). Daniel

On Tue, Jul 01, 2008 at 01:57:15PM -0400, Beman Dawes wrote:
We need to decide what our standard is first. ISO-9660:1999 limits:
Do we also want to drop the "File names shall not have more than one dot" and/or "Directory names shall not use dots at all" requirements?
Have we have ever had a complaint about multiple dots in file or directory names?
Isn't it standard these days to enable both Rock Ridge (Unix) and Joliet (Windows) extensions for ISO-9660? Both extent the list of valid filenames (and length of a filename). Jens

Jens Seidel wrote:
On Tue, Jul 01, 2008 at 01:57:15PM -0400, Beman Dawes wrote:
We need to decide what our standard is first. ISO-9660:1999 limits:
Do we also want to drop the "File names shall not have more than one dot" and/or "Directory names shall not use dots at all" requirements?
Have we have ever had a complaint about multiple dots in file or directory names?
Isn't it standard these days to enable both Rock Ridge (Unix) and Joliet (Windows) extensions for ISO-9660? Both extent the list of valid filenames (and length of a filename).
I think the answer is probably "yes" for most systems. The concern is really the less common systems, like OpenMVS. I think we should allow hyphens in names, drop the above dot requirements, and allow underscores (but not hyphens) as the first character of names. But I'd like to give others a chance to comment before going ahead. --Beman
participants (7)
-
Aaron W. LaFramboise
-
Beman Dawes
-
Daniel James
-
Daryle Walker
-
David Abrahams
-
Jens Seidel
-
Rene Rivera