Re: unable to remove oddly-named directory
On Fri, 14 Jun 2024, Jeremy Drake via Cygwin wrote: > On Fri, 14 Jun 2024, Jeremy Drake via Cygwin wrote: > > > Eliot Moss replied to me privately, and I confirmed as well, that this > > does not occur with Cygwin 3.5.1-1. So this appears to be a regression > > in 3.5.3. > > It also does not occur in 3.6.0-0.81 or 3.6.0-0-0.115, so perhaps this was > already fixed. The only thing I saw at all relevant had to do with > globbing, but seemed to be particularly about globbing on dos command > lines... I'm going nuts. Today, none of the versions I tested yesterday are working. Maybe I was using the wrong character? $'\uD800' is broken but $'\uDC00' is OK. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
Re: unable to remove oddly-named directory
On Fri, 14 Jun 2024, Jeremy Drake via Cygwin wrote: > Eliot Moss replied to me privately, and I confirmed as well, that this > does not occur with Cygwin 3.5.1-1. So this appears to be a regression > in 3.5.3. It also does not occur in 3.6.0-0.81 or 3.6.0-0-0.115, so perhaps this was already fixed. The only thing I saw at all relevant had to do with globbing, but seemed to be particularly about globbing on dos command lines... -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
Re: unable to remove oddly-named directory
On Thu, 13 Jun 2024, Jeremy Drake via Cygwin wrote: > Thankfully, this can be simply reproduced with the following two bash > commands (on cygwin 3.5.3): > > mkdir -p foo/$'\uD800' > rm -rf foo Eliot Moss replied to me privately, and I confirmed as well, that this does not occur with Cygwin 3.5.1-1. So this appears to be a regression in 3.5.3. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
Re: unable to remove oddly-named directory
On Thu, 13 Jun 2024, Brian Inglis via Cygwin wrote: > These reserved surrogate values should probably either be blocked, or encoded > at > the file system interface layer so they can be round tripped, like the Windows > reserved characters, in the BMP or SMP PUAs. > > Reserved surrogate ranges are D800-DBFF|DC00-DFFF. Cygwin already generates these unpaired surrogates in filenames, at least here: https://github.com/cygwin/cygwin/blob/84dff09aa0d3ad998551e3f91c61dc0534b0b8bf/winsup/cygwin/syscalls.cc#L342-L350 I was looking into ways to automate cleaning up these files, which would likely be hampered if things like findutils would suddenly start disallowing me from finding files with these characters in them. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
Re: unable to remove oddly-named directory
On 2024-06-13 14:59, Jeremy Drake via Cygwin wrote: Backstory: rust's test suite makes an oddly-named directory as part of a test: https://github.com/rust-lang/rust/blob/921645c737f1d6d107a0a10ca5ee129d364dcd7a/tests/run-make/non-unicode-in-incremental-dir/rmake.rs When trying to clean up after a rust build/test with rm -rf, it results in a "Directory not empty" error. Suggest using rust uutils for this, as rust created it: https://uutils.github.io/coreutils/ https://github.com/uutils/coreutils Thankfully, this can be simply reproduced with the following two bash commands (on cygwin 3.5.3): mkdir -p foo/$'\uD800' rm -rf foo This fails with: rm: cannot remove 'foo': Directory not empty when it should succeed. That is questionable as that value is a reserved Unicode high surrogate for a Unicode character higher than UTF-16 was originally designed for. $ mkdir -p foo/$'\uD800' $ rm -rf foo # /$'\uD800' /bin/rm: cannot remove 'foo': Directory not empty $ rm -rf foo/$'\uD800' removed directory 'foo/'$'\355\240\200' $ rm -rf foo removed directory 'foo' These reserved surrogate values should probably either be blocked, or encoded at the file system interface layer so they can be round tripped, like the Windows reserved characters, in the BMP or SMP PUAs. Reserved surrogate ranges are D800-DBFF|DC00-DFFF. Reserved noncharacters are U+FDD0-FDEF, and the last two code points of the BMP U+FFFE-, and each of the SMPs: U+{1-10}FFFE-{1-10}. Allowed PUAs are U+E000-F8FF, U+F-D and U+10-10FFFD. Corinna? Opinions? It would also be good to avoid the CSUR U+E000-E82F, U+F8A0-F8FF, U+F-F16AF: https://www.evertype.com/standards/csur/ and UCSUR U+E830-EDFF, U+F4C0-F4EF, U+F16B0-F1C9F, F1F00-F289F registry ranges: https://www.kreativekorp.com/ucsur/ as some fonts may render these, as they are used by applications. These registry folks are major contributors to Unicode standards, and these efforts bring order to supporting, managing, and using minority, minor historical or ancient, undeciphered, or constructed (e.g. Mormon, Shaw, Tolkien, Le Guin, Star Trek, Star Wars) language scripts or writing systems with glyphs not (yet) officially assigned in Unicode Standards. -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
unable to remove oddly-named directory
Backstory: rust's test suite makes an oddly-named directory as part of a test: https://github.com/rust-lang/rust/blob/921645c737f1d6d107a0a10ca5ee129d364dcd7a/tests/run-make/non-unicode-in-incremental-dir/rmake.rs When trying to clean up after a rust build/test with rm -rf, it results in a "Directory not empty" error. Thankfully, this can be simply reproduced with the following two bash commands (on cygwin 3.5.3): mkdir -p foo/$'\uD800' rm -rf foo This fails with: rm: cannot remove 'foo': Directory not empty when it should succeed. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation:https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple