This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PROPOSAL: translate '::' to '.' in arguments to the man command


Rafael Kitover wrote:
I have noticed that some man pages, for example perl modules below the
root namespace, are installed as Foo.Bar instead of Foo::Bar because
apparently windows file names cannot contain "::". Eg.

$ touch 'Foo::Bar' touch: creating `Foo::Bar': Invalid argument

This is sufficiently different from UNIX to trip most people up,
especially those working with Perl. Further, filenames with one colon do
work, e.g. Touch 'Foo:Bar'.
That's not completely true: ":" is an invalid character for Windows filenames.

touch "Foo:Bar"

does not returns an error but does not create a file called "Foo:Bar", instead it creates a file called "Foo" and associate to it a NTFS stream (I think this is the correct name) to it.

If you try an ls you'll see that your directory contains a file called "Foo". But try, for example:

echo Hello >> Foo
echo Good morning >> "Foo:Bar"

$ cat Foo
Hello

$ cat "Foo:Bar"
Good morning

$ rm Foo

$ cat "Foo:Bar"
cat: Foo:Bar: No such file or directory


For this reason I propose changing the "man" command in Cygwin to take
the special case of "::" into account and convert it to a ".", iff the
file containing "::" does not exist (might be supported in the future.)

If this is considered a good idea I'll be happy to make the patch.

Cheers,



--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]