S
Seebs
I think you are being deliberately obtuse here.
You keep saying this when people react to your posts in reasonably sane
ways.
I am proposing no such thing. What I am proposing is that passing a
string to fopen() that is not in 8.3 format should invoke an undefined
behavior (actually, implementation defined behavior would be even better).
You can't possibly be this stupid.
Hint: What do you think it is right now?
Why do you think it matters whether the name is 8.3 or not? What if we
made it implementation-defined how ALL names work, whether or not they
were in an 8.3 format?
Functions that open additional (nontemporary) files require a file
name, which is a string. The rules for composing valid file names are
implementation-defined. Whether the same file can be simultaneously
open multiple times is also implementation-defined.
Oh, look. It's *ALREADY* implementation-defined.
A Linux implementation would be free to choose to open any filename you
threw at it. A DOS implementation obviously couldn't do this in the
absence of a LFN support layer.
In other words, it's implementation-defined what names are valid. Yeah,
uhm, we already did that.
There is no reason for it to be undefined behavior to provide an invalid
file name; invalid file names cause fopen to return a null pointer, because
they can't be opened. There is a great deal of reason for ALL file names
to be implementation-defined behavior.
The essentially-irrelevant 8.3 file name convention is of no interest to
anyone anywhere anymore. You can't even find *cameras* that don't support
long file names, so far as I can tell.
-s