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