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/

Reply via email to