2008-10-08 Tor Lillqvist <tml@novell.com>
Bug 554790 - g_convert() misbehaves with winiconv versions
* glib/win_iconv.c (kernel_mbtowc): If converting from ASCII,
explicitly check for and reject 8bit chars. MultiByteToWideChar()
doesn't, at least not on XP.
svn path=/trunk/; revision=7578
2008-04-03 Tor Lillqvist <tml@novell.com>
Bug 525972 - UCS-4 not in the new win_iconv implementation
* glib/win_iconv.c: Add UCS-4. Also add spelling of UCS-2 without
the hyphen.
svn path=/trunk/; revision=6816
2008-04-02 Tor Lillqvist <tml@novell.com>
Bug 524314 - g_convert() on Win32 implicitly converts full width
alphanumerics into half width
* glib/win_iconv.c: Update from Yukihiro Nakadaira. Use
WC_NO_BEST_FIT_CHARS flag for WideCharToMultiByte() unless the
//translit flag was suffixed to the codeset name.
* glib/gconvert.c: Include win_iconv.c earlier so that its
definition of WINVER before it includes <windows.h> is used.
svn path=/trunk/; revision=6808
2008-03-19 Tor Lillqvist <tml@novell.com>
Bug 523298 - win_iconv can't convert from UTF-8 to GB18030 (or vice versa)
* glib/win_iconv.c: Fixes for code page 54936 (GB18030)
(mbtowc_flags): New function. Check if a code page is one of those
for which the dwFlags parameter to MultiByteToWideChar() must be
zero. Return 0 or MB_ERR_INVALID_CHARS.
(mbcs_mblen): New function for multi-byte (more than two bytes for
some characters) code pages. Only handles 54936 for now.
(make_csconv): Use it for 54936.
(kernel_mbtowc): Use mbtowc_flags().
svn path=/trunk/; revision=6741
2008-03-12 Tor Lillqvist <tml@novell.com>
Bug 520914 - win_iconv doesn't support UCS-2
* glib/win_iconv.c: Make UCS-2 just an alias for
UTF-16. Technically this is wrong of course, but shouldn't matter
an awful lot in practice.
svn path=/trunk/; revision=6686
2008-02-29 Tor Lillqvist <tml@novell.com>
* glib/win_iconv.c (name_to_codepage): Add some GNU libiconv
compatibility: Recognize "" and "char" as aliases for the current
locale's charset. (We use the system ANSI codepage as returned by
GetACP().) Recognize "wchar_t" as an alias for UTF-16LE.
svn path=/trunk/; revision=6604
2007-12-05 Tor Lillqvist <tml@novell.com>
* glib/win_iconv.c: Add "shift-jis" as an alternative spelling of
"shift_jis".
svn path=/trunk/; revision=6047
2007-11-27 Tor Lillqvist <tml@novell.com>
* glib/win_iconv.c: Some improvements, being upstreamed.
(must_use_null_useddefaultchar): New function, checks for those
codepages for which one must pass a NULL lpUsedDefaultChar pointer
to WideCharToMultiByte().
(kernel_wctomb): Use it.
(kernel_wctomb): Return with E2BIG immediately if bufsize is zero.
svn path=/trunk/; revision=5945
2007-11-26 Tor Lillqvist <tml@novell.com>
Implement #491549: On Windows, always use the native API for
character set conversions instead of GNU libiconv. Almost all
codesets supported by GNU libiconv exist as Windows codepages.
One missing feature is the "C99" and "JAVA" pseudo codesets, but I
doubt that is worth worrying about.
* glib/win_iconv.c: New file. iconv() implementation for
Windows. Placed in the public domain by Yukihiro Nakadaira
<yukihiro.nakadaira@gmail.com>. From
http://yukihiro.nakadaira.googlepages.com/win_iconv.zip, his
2007-11-17 version.
* glib/gconvert.c: Include win_iconv.c on Windows.
* configure.in: Bypass iconv checks on Windows.
svn path=/trunk/; revision=5937