Valid file-name characters

Volker Quetschke quetschke@scytek.de
Mon Jul 22 11:13:00 GMT 2002


Hi!

Comments below.

>>>>RC> I was just about to suggest that whatever character is used is used as
>>>>RC> an escape char rather than a literal replacement.
>>>>
>>>>RC> i.e. 
>>>>RC> WIN32      CYGWIN
>>>>'aux%c' ->> 'aux:'
>>>>'aux%%' ->> 'aux%'
>>>>
>>>>which means that
>>>>
>>>>s='a%%'
>>>>touch $s
>>>>notepad $s
>>>>
>>>>won't work.
>>>>
>>RC> Unless cygwin detects that notepad is a non cygwin program, and therefor
>>RC> needs the on-disk name.
>>
>>Even if cygwin knows that notepad is native program it can't tell for
>>sure if a%% is name of disk file. It may be a name of my dog to be
>>told from my computer speakers, for instance. An he surely won't like
>>if i misspell his name ;-)
>>
>>RC> With 
>>'aux%' ->> 'aux:'
>>
>>RC> s='aux:'
>>RC> touch $s
>>RC> notepad $s
>>
>>RC> won't work either - unless cygwin detects that notepad...
>>
>>That's exactly my point. Having some fancy rules for filename encoding
>>breaks interoperability with native tools. Escaping non-valid
>>characters like ':' is not big problem, since native tools can't use
>>such names anyway. But messing with valid characters like '%' is far
>>more dangerous and error-prone.


Yes, but what about using %CYGWINREPLACESEQUENCE_FOR_COLON% instead of ':' ?
Then touch "aux:" would generate aux: for cygwin programs and native
windows programs would see: aux%CYGWINREPLACESEQUENCE_FOR_COLON% as a filename.

The propability that someone wanted to generate a windows filename with a name
similar to a cygwin created special name is much less when we use many characters
to escape the single character ':' . For windows programs the user could
use something like:
$ s='aux:'
$ touch $s
$ notepad `cygpath -w $s`

> Thanks Egor.  That's precisely why I have always avoided this kind
> of filename munging in Cygwin.


Yes, but it would be very nice to have this functionality.

Bye

     Volker


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list