.hgtags
author Sam Lantinga <slouken@libsdl.org>
Fri, 28 Nov 2014 04:51:33 -0800
changeset 9246 a761913e5e91
parent 8628 b558f99d48f0
child 10002 c9cce8633f13
permissions -rw-r--r--
Fixed bug 2786 - "UCS-2-INTERNAL" iconv encoding is not supported everywhere, use UTF-16LE instead

Jonas Kulla

src/main/windows/SDL_windows_main.c:137:
cmdline = SDL_iconv_string("UTF-8", "UCS-2-INTERNAL", (char *)(text), (SDL_wcslen(text)+1)*sizeof(WCHAR));

I'm trying to compile an SDL2 application for windows using the mingw-w64 32bit toolchain provided by my distro (Fedora 19). However, even the simplest test program that does nothing at all fails to startup with a "Fatal error - out of memory" message because the mingw iconv library provided by my distro does not support the "UCS-2-INTERNAL" encoding and the conversion returns null.

From my little bit of research, it turns out that even though this encoding is supported by the external GNU libiconv library, some glibc versions (?) don't support it with their internal iconv routines, and will instead provide the native endian encoding when "UCS-2" is specified.

Nonetheless, I wonder why the native endianness is considered in the first place when Windows doesn't even run on any big endian archs (to my knowledge). And true enough, 'WIN_StringToUTF8' from core/windows/SDL_windows.h is used everywhere else in the windows backend, which is just a macro to iconv with "UTF-16LE" as source. Therefore it would IMO make sense to use this macro here as well, which would solve my problem (patch attached).
convert-repo@4405
     1
0afe0e38e02cf2048e93582f01c52fbb91d3c7bb release-1.2.7
convert-repo@4405
     2
230b156829ed13b31134d96f689c917981f57b84 release-1.2.5
convert-repo@4405
     3
27cab50ec9c746e886ce0f3fdaa0b0cdc55a594f release-1.2.11
convert-repo@4405
     4
2fe3fbd2bff50165b3cad33bf40d70b3bb3c9fd0 release-1.2.3
convert-repo@4405
     5
3c052d3bcc76c899dfd4846be76243a78e8c7180 release-1.2.4
convert-repo@4405
     6
3c5eed71a3320962551af3b3dfbee0c99fcf0086 release-1.2.10
convert-repo@4405
     7
4867f7f7dd3426d1dbbeef48b3f3b3aa19590cc4 release-1.2.12
convert-repo@4405
     8
6e28dae59e3baf4447c83e833a8d2ac912536f5b release-1.2.1
convert-repo@4405
     9
7c2589fb8d4df54c6faabd3faebd0c0e73f67879 release-1.2.13
convert-repo@4405
    10
86de11faf082881ad9b73a1a1d78733ca07f8db8 release-1.2.6
convert-repo@4405
    11
bb051fa871aa0b53ea57df56a446cec3bb85924c release-1.2.2
convert-repo@4405
    12
cfcb2e1c36ebe9809577adf768b0ec53e8768af9 release-1.2.8
convert-repo@4405
    13
e044e7c70a50a2f54d14ee20d0933e904e5853b6 release-1.2.9
convert-repo@4405
    14
f14cf9d71233934811774f941d0de121d5f96ccf release-1.2.14
slouken@4462
    15
39c22a953456f6c9e2c8993c8ff973824104102a pre-touch-removal
slouken@7578
    16
ccf5fbfa2afabab429ad911308f362201a94d810 macosx_10_4_supported
slouken@7637
    17
d6a8fa507a45d9de7258e51585eab3e45c415149 release-2.0.0
slouken@7886
    18
a8bd63b33636715f2cf6e7d36ab7201acbd478fe release-2.0.1
slouken@7888
    19
a8bd63b33636715f2cf6e7d36ab7201acbd478fe release-2.0.1
slouken@7888
    20
715a01415ac9305b9f8ec72b99fcf8cc9dd64dde release-2.0.1
slouken@7890
    21
715a01415ac9305b9f8ec72b99fcf8cc9dd64dde release-2.0.1
slouken@7890
    22
9ec71e56071cc80eda6691a3f8719ed5395dfcfb release-2.0.1
slouken@7892
    23
9ec71e56071cc80eda6691a3f8719ed5395dfcfb release-2.0.1
slouken@7892
    24
0000000000000000000000000000000000000000 release-2.0.1
slouken@7893
    25
0000000000000000000000000000000000000000 release-2.0.1
slouken@7893
    26
b9663c77f5c95ebf05f3c18e80619caae8ae1460 release-2.0.1
slouken@8298
    27
be2102f000d0d2d9bab75e9703a1d503d0f6bb33 release-2.0.2
slouken@8626
    28
f285b9487756ff681f76c85644222c03a7bfa1c7 release-2.0.3
slouken@8628
    29
f285b9487756ff681f76c85644222c03a7bfa1c7 release-2.0.3
slouken@8628
    30
704a0bfecf754e4e1383f83c7d5118b00cae26ea release-2.0.3