On 2021-03-01 04:17, John Vincent via Cygwin wrote:
I'm running cygwin on Windows 10, using UTF8 in English. I run cygwin bash
inside a cygwin mintty terminal. I've noticed a minor problem when using
cygstart with wildcard parameters.
I type:
$ cygstart *.??p
If there is a matching file then everything works as I expect. However if
there is no matching file I get an error message as follows:
Unable to start '.p': The specified file was not found.
When I look at this using the "od" command I see the following:
$ cygstart *.??p 2>&1 | od -tx1 -c
0000000 55 6e 61 62 6c 65 20 74 6f 20 73 74 61 72 74 20
U n a b l e t o s t a r t
0000020 27 ef 80 aa 2e ef 80 bf ef 80 bf 70 27 3a 20 54
' 357 200 252 . 357 200 277 357 200 277 p ' : T
0000040 68 65 20 73 70 65 63 69 66 69 65 64 20 66 69 6c
h e s p e c i f i e d f i l
0000060 65 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2e
e w a s n o t f o u n d .
0000100 0a
\n
It looks to me like cygstart is not outputting the correct UTF-8 for either
the * character or the ? character. I think this is a bug.
To support POSIX path names, Cygwin allows any characters other than \0 and /,
so it maps Windows special characters into the UTF-8 BMP PUA:
https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-specialchars
http://www.unicode.org/faq/private_use.html
https://en.wikipedia.org/wiki/Private_Use_Areas
It may also prefix unsupported codes in a code page with CAN/0x18.
The bug is in displaying in the error message the remapped string with
undisplayable PUA characters, rather than either the reverse mapped string or
the original input path name.
--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
--
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