Commit 13be73d9 authored by Sam Lantinga's avatar Sam Lantinga

Fixed bug #349

Solaris doesn't support the LATIN1 character set alias.

--HG--
branch : SDL-1.2
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402405
parent 84063eb2
...@@ -584,8 +584,8 @@ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, siz ...@@ -584,8 +584,8 @@ extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, siz
string that must be freed with SDL_free() or NULL on error. string that must be freed with SDL_free() or NULL on error.
*/ */
extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, size_t inbytesleft); extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, 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)
......
...@@ -107,9 +107,11 @@ static struct { ...@@ -107,9 +107,11 @@ static struct {
const char *name; const char *name;
int format; int format;
} encodings[] = { } encodings[] = {
{ "646", ENCODING_ASCII },
{ "ASCII", ENCODING_ASCII }, { "ASCII", ENCODING_ASCII },
{ "US-ASCII", ENCODING_ASCII }, { "US-ASCII", ENCODING_ASCII },
{ "LATIN1", ENCODING_LATIN1 }, { "LATIN1", ENCODING_LATIN1 },
{ "8859-1", ENCODING_LATIN1 },
{ "ISO-8859-1", ENCODING_LATIN1 }, { "ISO-8859-1", ENCODING_LATIN1 },
{ "UTF8", ENCODING_UTF8 }, { "UTF8", ENCODING_UTF8 },
{ "UTF-8", ENCODING_UTF8 }, { "UTF-8", ENCODING_UTF8 },
......
...@@ -53,12 +53,16 @@ int main(int argc, char *argv[]) ...@@ -53,12 +53,16 @@ int 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