Commit 5d257779 authored by Sam Lantinga's avatar Sam Lantinga

Fixed bug #349

Solaris doesn't support the LATIN1 character set alias.

Merged from 1.2 svn revision 3133f

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402406
parent 957d8bf3
...@@ -656,8 +656,8 @@ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, ...@@ -656,8 +656,8 @@ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
const char *fromcode, const char *fromcode,
const char *inbuf, const char *inbuf,
size_t inbytesleft); size_t inbytesleft);
#define SDL_iconv_utf8_ascii(S) SDL_iconv_string("ASCII", "UTF-8", S, SDL_strlen(S)+1) #define SDL_iconv_utf8_ascii(S) SDL_iconv_string("646", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_latin1(S) SDL_iconv_string("LATIN1", "UTF-8", S, SDL_strlen(S)+1) #define SDL_iconv_utf8_latin1(S) SDL_iconv_string("8859-1", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1) #define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1) #define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1)
......
...@@ -110,29 +110,33 @@ static struct ...@@ -110,29 +110,33 @@ static struct
const char *name; const char *name;
int format; int format;
} encodings[] = { } encodings[] = {
{ /* *INDENT-OFF* */
"ASCII", ENCODING_ASCII}, { { "646", ENCODING_ASCII },
"US-ASCII", ENCODING_ASCII}, { { "ASCII", ENCODING_ASCII },
"LATIN1", ENCODING_LATIN1}, { { "US-ASCII", ENCODING_ASCII },
"ISO-8859-1", ENCODING_LATIN1}, { { "LATIN1", ENCODING_LATIN1 },
"UTF8", ENCODING_UTF8}, { { "8859-1", ENCODING_LATIN1 },
"UTF-8", ENCODING_UTF8}, { { "ISO-8859-1", ENCODING_LATIN1 },
"UTF16", ENCODING_UTF16}, { { "UTF8", ENCODING_UTF8 },
"UTF-16", ENCODING_UTF16}, { { "UTF-8", ENCODING_UTF8 },
"UTF16BE", ENCODING_UTF16BE}, { { "UTF16", ENCODING_UTF16 },
"UTF-16BE", ENCODING_UTF16BE}, { { "UTF-16", ENCODING_UTF16 },
"UTF16LE", ENCODING_UTF16LE}, { { "UTF16BE", ENCODING_UTF16BE },
"UTF-16LE", ENCODING_UTF16LE}, { { "UTF-16BE", ENCODING_UTF16BE },
"UTF32", ENCODING_UTF32}, { { "UTF16LE", ENCODING_UTF16LE },
"UTF-32", ENCODING_UTF32}, { { "UTF-16LE", ENCODING_UTF16LE },
"UTF32BE", ENCODING_UTF32BE}, { { "UTF32", ENCODING_UTF32 },
"UTF-32BE", ENCODING_UTF32BE}, { { "UTF-32", ENCODING_UTF32 },
"UTF32LE", ENCODING_UTF32LE}, { { "UTF32BE", ENCODING_UTF32BE },
"UTF-32LE", ENCODING_UTF32LE}, { { "UTF-32BE", ENCODING_UTF32BE },
"UCS2", ENCODING_UCS2}, { { "UTF32LE", ENCODING_UTF32LE },
"UCS-2", ENCODING_UCS2}, { { "UTF-32LE", ENCODING_UTF32LE },
"UCS4", ENCODING_UCS4}, { { "UCS2", ENCODING_UCS2 },
"UCS-4", ENCODING_UCS4},}; { "UCS-2", ENCODING_UCS2 },
{ "UCS4", ENCODING_UCS4 },
{ "UCS-4", ENCODING_UCS4 },
/* *INDENT-ON* */
};
SDL_iconv_t SDL_iconv_t
SDL_iconv_open(const char *tocode, const char *fromcode) SDL_iconv_open(const char *tocode, const char *fromcode)
......
...@@ -57,12 +57,16 @@ main(int argc, char *argv[]) ...@@ -57,12 +57,16 @@ main(int argc, char *argv[])
for (i = 0; i < SDL_arraysize(formats); ++i) { for (i = 0; i < SDL_arraysize(formats); ++i) {
test[0] = SDL_iconv_string(formats[i], "UCS-4", ucs4, len); test[0] = SDL_iconv_string(formats[i], "UCS-4", ucs4, len);
test[1] = SDL_iconv_string("UCS-4", formats[i], test[0], len); test[1] = SDL_iconv_string("UCS-4", formats[i], test[0], len);
if (SDL_memcmp(test[1], ucs4, len) != 0) { if (!test[1] || SDL_memcmp(test[1], ucs4, len) != 0) {
fprintf(stderr, "FAIL: %s\n", formats[i]); fprintf(stderr, "FAIL: %s\n", formats[i]);
++errors; ++errors;
} }
SDL_free(test[0]); if(test[0]) {
SDL_free(test[1]); SDL_free(test[0]);
}
if(test[1]) {
SDL_free(test[1]);
}
} }
test[0] = SDL_iconv_string("UTF-8", "UCS-4", ucs4, len); test[0] = SDL_iconv_string("UTF-8", "UCS-4", ucs4, len);
SDL_free(ucs4); SDL_free(ucs4);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment