2009/11/16 Thomas Wolff:
>>>> I'd suspect the support for ADSs in 1.5 was rather accidental anyway.
>>>> POSIX programs certainly don't know about them, and you get the rather
>>>> weird situation that "files" like foo:bar can be accessed but don't
>>>> show up in the directory they're in. Hence I think the right way to
>>>> access ADSs is via Windows tools. Unless there is a POSIXy way to
>>>> represent them?
>>>>
>>>
>>> I've only learned about this ADS stuff recently but yes, I think,
>>> simply using the "a:b" syntax (which is also used by Windows tools)
>>> and handling them as a virtual file is a quite obvious POSIX way to
>>> do it.
>>> So if it worked in 1.5, whether accidental or not, I think it should
>>> continue to work in 1.7.
>>>
>>
>> It's a deliberate change.  It's more important to support as much POSIXy
>> filenames as possible than to access streams.  I agree with Andy.  Use
>> Windows tools to use them.
>>
>
> But with it being supported, "foo:bar" *is* a POSIX filename and can quite
> transparently be handled like a file

If you create a file called "foo:bar" in Cygwin 1.5, a directory
listing will actually show a file called "foo" of size 0. You have to
already know that "foo:bar" exists to access it, and there's no way in
Cygwin to find those files.

Furthermore, if you delete the file "foo", you'll also delete
"foo:bar" and any other ADSs of "foo". Again, something that POSIX
programs don't expect.


> Moreover, this transparent mapping would also solve the copy/backup problem
> discussed in the other thread (was it "rsync"?) and actually all problems at
> once, like including these things in zip archives etc.

Zip would never know about the ADSs, because they don't show up in
directory listings. Same in cmd.exe, btw.

I guess they could be included in Cygwin directory listings, but
- It would be a chunky piece of work to implement it.
- It would slow down directory operations.
- Non-POSIX behaviours would remain: creating "foo:bar" would create
an empty "foo" and deleting "foo" would also delete "foo:bar" and any
other ADSs.

I think they'd need a special API if they were to be supported. Do
they fit into the xattr stuff?

Andy

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to