I just uploaded a new Cygwin 1.7 test release, 1.7.0-62.
Apart from bugfixes, this patch contains a change to the
internationalization efforts in Cygwin which cristalized out of a couple
of longish discussions on the cygwin and cygwin-developer lists.
Here's how it's supposed to work in future:
- UTF-8 rules.
- System objects will always be *initially* translated using UTF-8. This
includes file names, user names, and initial environment variables.
This is also the rule for the consile window.
- By setting the locale environ variables you can switch the charset
used in subsequent child processes in the console, as well as to
translate filenames and other system objects. The conversions in
the current process are not affected by this. Only the setting at
process startup are binding.
This is only a stop-gap measure, to allow to re-use old archives
or scripts. Those should be converted to UTF-8 ASAP!
- Consequentially, setlocale() calls in a process have only an effect on
the process code itself, not on the system object conversions within
Cygwin and in the console window.
- The "C" locale's default charset is UTF-8.
- Additionally there are now language-neutral "C.<charset>" locales
("C.CP1252", "C.EUCJP", etc).
- The user's ANSI codepage remain the default charset for
"language" and "language_TERRITORY" locales.
- Due to potential collision problems, the special filename conversion
of characters which are not available in the current character set
is now prepended with a Ctrl-X character, rather than Ctrl-N.
I fixed the documentation in the user's guide accordingly:
- Stop faking hardlinks on filesystems not supporting them (FAT, FAT32)
by copying the file. Instead, the link(2) function returns EPERM,
just as on Linux.
- Improve multibyte to widechar conversion and vice versa.
- Fix a typo in the extended attributes handling to support the setxattr
call not only on Samba.
- Fix a few problems in signal handling.
- More workaround an issue with crashes due to invalid references to
malloc functions when loading DLLs built against test versions of
Cygwin between 1.7.0-49 and 1.7.0-57.
- Fix error handling in a couple of file-related functions.
- Avoid a failing recv function when trying to receive data on a socket
connected via a child process. This works around a WinSock bug.
- Fix a bug which disallowed to mq_open the smae message queue in different
- Declare getpagesize correctly as int per POSIX.
- Q: How do I know that I'm running Cygwin 1.7.0-62?
A: The `uname -v' command prints "2009-10-03 14:33"
*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***
If you want to unsubscribe from the cygwin-announce mailing list, look
at the "List-Unsubscribe: " tag in the email header of this message.
Send email to the address specified there. It will be in the format:
If you need more information on unsubscribing, start reading here:
Please read *all* of the information on unsubscribing that is available
starting at this URL.