Mercurial > sdl-ios-xcode
view README.MacOS @ 1211:304d8dd6a989
To: sdl@libsdl.org
From: Christian Walther <cwalther@gmx.ch>
Date: Wed, 28 Dec 2005 12:13:20 +0100
Subject: [SDL] Fix for opening documents on Mac OS X < 10.4
The current code in SDLMain.m that transforms documents opened from the
Finder into command-line arguments (introduced in revision 1.14,
2005-08-11) uses the methods -[NSString lengthOfBytesUsingEncoding:] and
-[NSString getCString:maxLength:encoding:], which are only available in
Mac OS X 10.4.
Compiling this code on 10.3 produces warnings, and running it (i.e.
starting an SDL application by opening a document) leads to weird
behavior which I didn't investigate in detail ("*** -[NSCFString
lengthOfBytesUsingEncoding:]: selector not recognized" is printed to the
console log, and the SDL window never opens).
The attached patch removes the offending calls and uses -[NSString
UTF8String] instead, which is available everywhere. Tested on 10.3.9,
and I see no reason why it shouldn't also work on 10.2 and 10.4.
Two further comments:
* The comment above the -[SDLMain application: openFile:] implementation
says "You need to have a CFBundleDocumentsType section in your
Info.plist to get this message, apparently." This is not the case in my
experience - it worked just fine with a hand-built bare-bones
application consisting only of Test.app/Contents/MacOS/test, without any
Info.plist (although you have to press the option and command keys for
such an application to accept a dragged file).
* I took the liberty of cleaning up another area of SDLMain.m: I changed
"CustomApplicationMain (argc, argv)" to "CustomApplicationMain (int
argc, char **argv)". This avoids the "type of `argv' defaults to `int'"
warnings, and I'm not sure if leaving out the types could cause problems
on platforms where an int and a char** aren't of the same size.
-Christian
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 01 Jan 2006 23:45:52 +0000 |
parents | 37e3ca9254c7 |
children |
line wrap: on
line source
============================================================================== Using the Simple DirectMedia Layer with MacOS 7,8,9 on PPC ============================================================================== These instructions are for people using the Apple MPW environment: http://developer.apple.com/tools/mpw-tools/ CodeWarrior projects are available in the CWprojects directory. ============================================================================== I. Building the Simple DirectMedia Layer libraries: (This step isn't necessary if you have the SDL binary distribution) First, unpack the MPWmake.sea.hqx archive and move SDL.make into the SDL directory. Start MPW Set the current directory within MPW to the SDL toplevel directory. Build "SDL" (Type Command-B and enter "SDL" in the dialog) If everything compiles successfully, you now have the PPC libraries "SDL" and "SDLmain.o" in the 'lib' subdirectory. ============================================================================== II. Building the Simple DirectMedia Layer test programs: First, unpack the MPWmake.sea.hqx archive, move the new rsrc directory to the main SDL directory, and move the makefiles in the new test subdirectory to the SDL 'test' subdirectory. Start MPW Set the current directory within MPW to the SDL 'test' subdirectory. Build the programs that have an associated MPW makefile (file ending with .make), including "testwin", "testalpha", and "graywin". Copy the SDL library file into the test directory, and run! ============================================================================== III. Building the Simple DirectMedia Layer demo programs: Copy one of the test program Makefiles to the demo directory and modify it to match the sources in the demo. ============================================================================== IV. Enjoy! :) If you have a project you'd like me to know about, or want to ask questions, go ahead and join the SDL developer's mailing list by sending e-mail to: sdl-request@libsdl.org and put "subscribe" into the subject of the message. Or alternatively you can use the web interface: http://www.libsdl.org/mailman/listinfo/sdl ==============================================================================