Mercurial > sdl-ios-xcode
view test/testiconv.c @ 4221:c56391324e59 SDL-1.2
Fixed bug #674
Matej 2009-01-08 09:25:34 PST
Hello,
I maintain a cross-platform project that uses SDL.
One of the users who runs OSX has told me that he has problems with linking to
SDL due to missing -framework option.
I think that the problem is because of this:
'sdl-config --libs' outputs '-L/opt/local/lib -lSDLmain -lSDL
-Wl,-framework,Cocoa'
All the options are passed to the linker except the last one. I think that the
good output should be just:
'-L/opt/local/lib -lSDLmain -lSDL -framework Cocoa'
since those options (--libs) are passed to the linker, so the '-Wl' option is
redundant and possibly harmful in this very case
I use autotools with libtool to do the build...
Regards,
Matej
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 21 Sep 2009 10:23:07 +0000 |
parents | 6a4f3a32c2e6 |
children |
line wrap: on
line source
#include <stdio.h> #include "SDL.h" static size_t widelen(char *data) { size_t len = 0; Uint32 *p = (Uint32 *)data; while(*p++) { ++len; } return len; } int main(int argc, char *argv[]) { const char * formats[] = { "UTF8", "UTF-8", "UTF16BE", "UTF-16BE", "UTF16LE", "UTF-16LE", "UTF32BE", "UTF-32BE", "UTF32LE", "UTF-32LE", "UCS4", "UCS-4", }; char buffer[BUFSIZ]; char *ucs4; char *test[2]; int i, index = 0; FILE *file; int errors = 0; if ( !argv[1] ) { argv[1] = "utf8.txt"; } file = fopen(argv[1], "rb"); if ( !file ) { fprintf(stderr, "Unable to open %s\n", argv[1]); return (1); } while ( fgets(buffer, sizeof(buffer), file) ) { /* Convert to UCS-4 */ size_t len; ucs4 = SDL_iconv_string("UCS-4", "UTF-8", buffer, SDL_strlen(buffer)+1); len = (widelen(ucs4)+1)*4; for ( i = 0; i < SDL_arraysize(formats); ++i ) { test[0] = SDL_iconv_string(formats[i], "UCS-4", ucs4, len); test[1] = SDL_iconv_string("UCS-4", formats[i], test[0], len); if ( !test[1] || SDL_memcmp(test[1], ucs4, len) != 0 ) { fprintf(stderr, "FAIL: %s\n", formats[i]); ++errors; } if ( test[0] ) { SDL_free(test[0]); } if ( test[1] ) { SDL_free(test[1]); } } test[0] = SDL_iconv_string("UTF-8", "UCS-4", ucs4, len); SDL_free(ucs4); fputs(test[0], stdout); SDL_free(test[0]); } return (errors ? errors + 1 : 0); }