Mercurial > sdl-ios-xcode
changeset 1502:d403a39389da
UTF-32 by definition can't handle characters higher than 0x10FFFF
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 13 Mar 2006 01:16:16 +0000 |
parents | 73dc5d39bbf8 |
children | 5e4dad24a5de |
files | src/stdlib/SDL_iconv.c test/testiconv.c |
diffstat | 2 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/stdlib/SDL_iconv.c Mon Mar 13 01:08:00 2006 +0000 +++ b/src/stdlib/SDL_iconv.c Mon Mar 13 01:16:16 2006 +0000 @@ -669,7 +669,7 @@ case ENCODING_UTF32BE: { Uint8 *p = (Uint8 *)dst; - if ( ch > 0x7FFFFFFF ) { + if ( ch > 0x10FFFF ) { ch = UNKNOWN_UNICODE; } if ( dstlen < 4 ) { @@ -686,7 +686,7 @@ case ENCODING_UTF32LE: { Uint8 *p = (Uint8 *)dst; - if ( ch > 0x7FFFFFFF ) { + if ( ch > 0x10FFFF ) { ch = UNKNOWN_UNICODE; } if ( dstlen < 4 ) {
--- a/test/testiconv.c Mon Mar 13 01:08:00 2006 +0000 +++ b/test/testiconv.c Mon Mar 13 01:16:16 2006 +0000 @@ -3,7 +3,7 @@ #include "SDL.h" -static SDL_bool testutf16(char *data) +static SDL_bool testutf1632(char *data) { Uint32 *p = (Uint32 *)data; while(*p) { @@ -63,8 +63,10 @@ size_t len = (widelen(ucs4)+1)*4; for ( i = 0; i < SDL_arraysize(formats); ++i ) { if ( (SDL_strncasecmp(formats[i], "UTF16", 5) == 0 || - SDL_strncasecmp(formats[i], "UTF-16", 6) == 0) && - !testutf16(ucs4) ) { + SDL_strncasecmp(formats[i], "UTF-16", 6) == 0 || + SDL_strncasecmp(formats[i], "UTF32", 5) == 0 || + SDL_strncasecmp(formats[i], "UTF-32", 6) == 0) && + !testutf1632(ucs4) ) { continue; } test[0] = SDL_iconv_string(formats[i], "UCS-4", ucs4, len);