Some of the changes are just to get rid of compiler warnings. -Adam
adam-higueras-macbook-pro:cocoahelper adamvh$ diff -u cocoahelper.m ~/Desktop/lispbuilder-sdl/cocoahelper/cocoahelper.m --- cocoahelper.m 2010-04-07 15:15:44.000000000 -0400 +++ /Users/adamvh/Desktop/lispbuilder-sdl/cocoahelper/cocoahelper.m 2008-09-25 13:07:29.000000000 -0400 @@ -14,17 +14,23 @@ @interface SDLMain : NSObject @end -...@interface NSApplication(SDL_Missing_Methods) -- (void)setAppleMenu:(NSMenu *)menu; -...@end - /* Use this flag to determine whether we use SDLMain.nib or not */ #define SDL_USE_NIB_FILE 0 /* Use this flag to determine whether we use CPS (docking) or not */ #define SDL_USE_CPS 1 -//#undef SDL_USE_CPS +#undef SDL_USE_CPS #ifdef SDL_USE_CPS +/* Portions of CPS.h */ +typedef struct CPSProcessSerNum +{ + UInt32 lo; + UInt32 hi; +} CPSProcessSerNum; + +extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn); +extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); +extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn); #endif /* SDL_USE_CPS */ @@ -78,11 +84,11 @@ { if (shouldChdir) { - unsigned char parentdir[MAXPATHLEN]; + char parentdir[MAXPATHLEN]; CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle()); CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url); if (CFURLGetFileSystemRepresentation(url2, true, parentdir, MAXPATHLEN)) { - assert ( chdir ((char *)parentdir) == 0 ); /* chdir to the binary app's parent */ + assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ } CFRelease(url); CFRelease(url2); @@ -199,11 +205,11 @@ #ifdef SDL_USE_CPS { - ProcessSerialNumber PSN; + CPSProcessSerNum PSN; /* Tell the dock about us */ - if (!GetCurrentProcess(&PSN)) - if (!TransformProcessType(&PSN, kProcessTransformToForegroundApplication)) - if (!SetFrontProcess(&PSN)) + if (!CPSGetCurrentProcess(&PSN)) + if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103)) + if (!CPSSetFrontProcess(&PSN)) [SDLApplication sharedApplication]; } #endif /* SDL_USE_CPS */ @@ -285,7 +291,7 @@ ProcessSerialNumber processSerialNum; CustomApplicationMain (0, NULL); GetCurrentProcess(&processSerialNum); - TransformProcessType(&processSerialNum, kProcessTransformToForegroundApplication); + CPSEnableForegroundOperation (&processSerialNum); SetFrontProcess(&processSerialNum); } On Wed, Apr 7, 2010 at 3:15 PM, Elliott Slaughter < elliottslaugh...@gmail.com> wrote: > Would you mind providing a unified diff (i.e. pass the -u option to diff)? > > Thanks. > > > On Wed, Apr 7, 2010 at 12:11 PM, Adam Higuera <ahig...@gmail.com> wrote: > >> Here's the output of a regular old diff: >> >> adam-higueras-macbook-pro:cocoahelper adamvh$ diff cocoahelper.m >> ~/Desktop/lispbuilder-sdl/cocoahelper/cocoahelper.m >> 17,20d16 >> < @interface NSApplication(SDL_Missing_Methods) >> < - (void)setAppleMenu:(NSMenu *)menu; >> < @end >> < >> 26c22 >> < //#undef SDL_USE_CPS >> --- >> > #undef SDL_USE_CPS >> 27a24,33 >> > /* Portions of CPS.h */ >> > typedef struct CPSProcessSerNum >> > { >> > UInt32 lo; >> > UInt32 hi; >> > } CPSProcessSerNum; >> > >> > extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn); >> > extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, >> UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); >> > extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn); >> 81c87 >> < unsigned char parentdir[MAXPATHLEN]; >> --- >> > char parentdir[MAXPATHLEN]; >> 85c91 >> < assert ( chdir ((char *)parentdir) == 0 ); /* chdir to the binary >> app's parent */ >> --- >> > assert ( chdir (parentdir) == 0 ); /* chdir to the binary >> app's parent */ >> 202c208 >> < ProcessSerialNumber PSN; >> --- >> > CPSProcessSerNum PSN; >> 204,206c210,212 >> < if (!GetCurrentProcess(&PSN)) >> < if (!TransformProcessType(&PSN, >> kProcessTransformToForegroundApplication)) >> < if (!SetFrontProcess(&PSN)) >> --- >> > if (!CPSGetCurrentProcess(&PSN)) >> > if >> (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103)) >> > if (!CPSSetFrontProcess(&PSN)) >> 288c294 >> < TransformProcessType(&processSerialNum, >> kProcessTransformToForegroundApplication); >> --- >> > CPSEnableForegroundOperation (&processSerialNum); >> >> >> On Wed, Apr 7, 2010 at 3:00 PM, Elliott Slaughter < >> elliottslaugh...@gmail.com> wrote: >> >>> Well, if you "svn diff" the files, I or someone else can commit the >>> changes. I'm sure that's probably not the "right" way to go about this, but >>> it works :-) >>> >>> >>> On Wed, Apr 7, 2010 at 11:53 AM, Adam Higuera <ahig...@gmail.com> wrote: >>> >>>> Oh, there are also a few things I found in cocoahelper that I think >>>> should be changed. It uses the deprecated function >>>> CPSEnableForegroundOperation, >>>> which should really be replaced with TransformProcessType. I'm not >>>> exactly sure how to submit a patch but I would be glad to. >>>> >>>> Thanks, >>>> Adam >>>> >>>> >>>> On Wed, Apr 7, 2010 at 2:48 PM, Adam Higuera <ahig...@gmail.com> wrote: >>>> >>>>> After realizing that everything worked fine if I launched SBCL from the >>>>> terminal instead of slime and hunting around the mailing list, I >>>>> discovered >>>>> the following fix (which I believe is now on the wiki): >>>>> >>>>> Putting the line >>>>> >>>>> (setf swank:*communication-style* :fd-handler) >>>>> >>>>> in the file ~/.swank.lisp allows the SDL examples to run when launched >>>>> from SLIME. The earlier messages I was looking at seemed to think that >>>>> the >>>>> problem might be due to SLIME's default policy of spawning new threads and >>>>> Cocoa's idiosyncracies with respect to drawing from outside the main >>>>> thread. >>>>> I'm not entirely familiar with either of these topics, but I have a >>>>> feeling >>>>> both my problem and the problems with CCL are related to this issue. >>>>> >>>>> Thanks, >>>>> Adam >>>>> >>>>> On Wed, Apr 7, 2010 at 2:13 PM, Elliott Slaughter < >>>>> elliottslaugh...@gmail.com> wrote: >>>>> >>>>>> I have never seen this problem in SBCL before. I have been using the >>>>>> official SDL framework with SBCL 1.0.37 on Leopard without any trouble at >>>>>> all. >>>>>> >>>>>> Maybe you should answer the usual version questions (i.e. SBCL, SDL, >>>>>> lispbuilder, XCode versions)? >>>>>> >>>>>> Luke, thoughts? >>>>>> >>>>>> On Tue, Apr 6, 2010 at 8:02 PM, Adam Higuera <ahig...@gmail.com>wrote: >>>>>> >>>>>>> No it is sbcl. >>>>>>> >>>>>>> Thanks, >>>>>>> Adam >>>>>>> >>>>>>> >>>>>>> On Tue, Apr 6, 2010 at 10:39 PM, Elliott Slaughter < >>>>>>> elliottslaugh...@gmail.com> wrote: >>>>>>> >>>>>>>> Are you using Clozure CL? This is a known issue with CCL, but SBCL, >>>>>>>> CLISP, and Allegro should work fine. >>>>>>>> >>>>>>>> So (assuming my diagnosis is right) you can either help us solve >>>>>>>> this bug with CCL, or switch to a different Lisp for now. >>>>>>>> >>>>>>>> Hope that helps. >>>>>>>> >>>>>>>> On Tue, Apr 6, 2010 at 7:14 PM, Adam Higuera <ahig...@gmail.com>wrote: >>>>>>>> >>>>>>>>> Alright, everything has built and I can run the examples, but when >>>>>>>>> I run them, they don't seem to work quite right, i.e. there isn't a >>>>>>>>> bar on >>>>>>>>> the window and there is no menu bar, nor is there an app icon in the >>>>>>>>> dock. >>>>>>>>> I've attached a screenshot of what happens. >>>>>>>>> >>>>>>>>> Is this supposed to happen is there something else I need to do to >>>>>>>>> get this working all the way? >>>>>>>>> >>>>>>>>> It is beach-balling at the time, though you can't see it in the >>>>>>>>> screenshot. >>>>>>>>> >>>>>>>>> (re-sent because attachment was huge - sorry - moderator can deny >>>>>>>>> previous message) >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Adam >>>>>>>>> >>>>>>>>> On Tue, Apr 6, 2010 at 10:06 PM, Adam Higuera >>>>>>>>> <ahig...@gmail.com>wrote: >>>>>>>>> >>>>>>>>>> Alright, everything has built and I can run the examples, but when >>>>>>>>>> I run them, they don't seem to work quite right, i.e. there isn't a >>>>>>>>>> bar on >>>>>>>>>> the window and there is no menu bar, nor is there an app icon in the >>>>>>>>>> dock. >>>>>>>>>> I've attached a screenshot of what happens. >>>>>>>>>> >>>>>>>>>> Is this supposed to happen is there something else I need to do to >>>>>>>>>> get this working all the way? >>>>>>>>>> >>>>>>>>>> It is beach-balling at the time, though you can't see it in the >>>>>>>>>> screenshot. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Adam >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Apr 6, 2010 at 9:47 PM, Adam Higuera >>>>>>>>>> <ahig...@gmail.com>wrote: >>>>>>>>>> >>>>>>>>>>> Still have these warnings, but it appears to have compiled: >>>>>>>>>>> cocoahelper.m: In function ‘-[SDLMain setupWorkingDirectory:]’: >>>>>>>>>>> cocoahelper.m:90: warning: pointer targets in passing argument 3 >>>>>>>>>>> of ‘CFURLGetFileSystemRepresentation’ differ in signedness >>>>>>>>>>> cocoahelper.m: In function ‘setApplicationMenu’: >>>>>>>>>>> cocoahelper.m:163: warning: no ‘-setAppleMenu:’ method found >>>>>>>>>>> cocoahelper.m:163: warning: (Messages without a matching method >>>>>>>>>>> signature >>>>>>>>>>> cocoahelper.m:163: warning: will be assumed to return ‘id’ and >>>>>>>>>>> accept >>>>>>>>>>> cocoahelper.m:163: warning: ‘...’ as arguments.) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Apr 6, 2010 at 9:40 PM, Elliott Slaughter < >>>>>>>>>>> elliottslaugh...@gmail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Note: this patch is for lispbuilder-sdl/cocoahelper/Makefile, >>>>>>>>>>>> not lispbuilder-sdl/Makefile. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Apr 6, 2010 at 6:39 PM, Elliott Slaughter < >>>>>>>>>>>> elliottslaugh...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> How did you install SDL? You don't seem to have sdl-config >>>>>>>>>>>>> installed, so I assume you are using SDL.framework? If so, the >>>>>>>>>>>>> following >>>>>>>>>>>>> patch might work for you: >>>>>>>>>>>>> >>>>>>>>>>>>> Index: Makefile >>>>>>>>>>>>> >>>>>>>>>>>>> =================================================================== >>>>>>>>>>>>> --- Makefile (revision 1464) >>>>>>>>>>>>> +++ Makefile (working copy) >>>>>>>>>>>>> @@ -1,6 +1,6 @@ >>>>>>>>>>>>> cocoahelper.dylib : cocoahelper.m >>>>>>>>>>>>> - gcc -c cocoahelper.m -o cocoahelper.o -fPIC `sdl-config >>>>>>>>>>>>> --cflags` >>>>>>>>>>>>> - gcc -dynamiclib -o cocoahelper.dylib cocoahelper.o >>>>>>>>>>>>> -framework Cocoa `sdl-config --libs` >>>>>>>>>>>>> + gcc -c cocoahelper.m -o cocoahelper.o -fPIC -I >>>>>>>>>>>>> /Library/Frameworks/SDL.framework/Headers/ >>>>>>>>>>>>> + gcc -dynamiclib -o cocoahelper.dylib cocoahelper.o >>>>>>>>>>>>> -framework Cocoa -framework SDL >>>>>>>>>>>>> >>>>>>>>>>>>> cocoahelper.framework: cocoahelper.dylib >>>>>>>>>>>>> rm -rf cocoahelper.framework >>>>>>>>>>>>> >>>>>>>>>>>>> Let us know if that helps. >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Apr 6, 2010 at 6:30 PM, Adam Higuera < >>>>>>>>>>>>> ahig...@gmail.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I downloaded lispbuilder-sdl from the google code page, and >>>>>>>>>>>>>> attempted to build cocoahelper. The result is the following set >>>>>>>>>>>>>> of error >>>>>>>>>>>>>> messages: >>>>>>>>>>>>>> >>>>>>>>>>>>>> adam-higueras-macbook-pro:cocoahelper adamvh$ make >>>>>>>>>>>>>> gcc -c cocoahelper.m -o cocoahelper.o -fPIC `sdl-config >>>>>>>>>>>>>> --cflags` >>>>>>>>>>>>>> /bin/sh: sdl-config: command not found >>>>>>>>>>>>>> cocoahelper.m:8:16: error: SDL.h: No such file or directory >>>>>>>>>>>>>> cocoahelper.m: In function ‘-[SDLApplication terminate:]’: >>>>>>>>>>>>>> cocoahelper.m:73: error: ‘SDL_Event’ undeclared (first use in >>>>>>>>>>>>>> this function) >>>>>>>>>>>>>> cocoahelper.m:73: error: (Each undeclared identifier is >>>>>>>>>>>>>> reported only once >>>>>>>>>>>>>> cocoahelper.m:73: error: for each function it appears in.) >>>>>>>>>>>>>> cocoahelper.m:73: error: syntax error before ‘event’ >>>>>>>>>>>>>> cocoahelper.m:74: error: ‘event’ undeclared (first use in this >>>>>>>>>>>>>> function) >>>>>>>>>>>>>> cocoahelper.m:74: error: ‘SDL_QUIT’ undeclared (first use in >>>>>>>>>>>>>> this function) >>>>>>>>>>>>>> cocoahelper.m: In function ‘-[SDLMain >>>>>>>>>>>>>> setupWorkingDirectory:]’: >>>>>>>>>>>>>> cocoahelper.m:90: warning: pointer targets in passing argument >>>>>>>>>>>>>> 3 of ‘CFURLGetFileSystemRepresentation’ differ in signedness >>>>>>>>>>>>>> cocoahelper.m: In function ‘setApplicationMenu’: >>>>>>>>>>>>>> cocoahelper.m:163: warning: no ‘-setAppleMenu:’ method found >>>>>>>>>>>>>> cocoahelper.m:163: warning: (Messages without a matching >>>>>>>>>>>>>> method signature >>>>>>>>>>>>>> cocoahelper.m:163: warning: will be assumed to return ‘id’ and >>>>>>>>>>>>>> accept >>>>>>>>>>>>>> cocoahelper.m:163: warning: ‘...’ as arguments.) >>>>>>>>>>>>>> make: *** [cocoahelper.dylib] Error 1 >>>>>>>>>>>>>> >>>>>>>>>>>>>> However, if I replace the line >>>>>>>>>>>>>> >>>>>>>>>>>>>> #import "SDL.h" >>>>>>>>>>>>>> >>>>>>>>>>>>>> with >>>>>>>>>>>>>> >>>>>>>>>>>>>> #import <SDL/SDL.h> >>>>>>>>>>>>>> >>>>>>>>>>>>>> I instead get the error messages >>>>>>>>>>>>>> >>>>>>>>>>>>>> adam-higueras-macbook-pro:cocoahelper adamvh$ make >>>>>>>>>>>>>> gcc -c cocoahelper.m -o cocoahelper.o -fPIC `sdl-config >>>>>>>>>>>>>> --cflags` >>>>>>>>>>>>>> /bin/sh: sdl-config: command not found >>>>>>>>>>>>>> cocoahelper.m: In function ‘-[SDLMain >>>>>>>>>>>>>> setupWorkingDirectory:]’: >>>>>>>>>>>>>> cocoahelper.m:90: warning: pointer targets in passing argument >>>>>>>>>>>>>> 3 of ‘CFURLGetFileSystemRepresentation’ differ in signedness >>>>>>>>>>>>>> cocoahelper.m: In function ‘setApplicationMenu’: >>>>>>>>>>>>>> cocoahelper.m:163: warning: no ‘-setAppleMenu:’ method found >>>>>>>>>>>>>> cocoahelper.m:163: warning: (Messages without a matching >>>>>>>>>>>>>> method signature >>>>>>>>>>>>>> cocoahelper.m:163: warning: will be assumed to return ‘id’ and >>>>>>>>>>>>>> accept >>>>>>>>>>>>>> cocoahelper.m:163: warning: ‘...’ as arguments.) >>>>>>>>>>>>>> gcc -dynamiclib -o cocoahelper.dylib cocoahelper.o -framework >>>>>>>>>>>>>> Cocoa `sdl-config --libs` >>>>>>>>>>>>>> /bin/sh: sdl-config: command not found >>>>>>>>>>>>>> Undefined symbols: >>>>>>>>>>>>>> "_SDL_PushEvent", referenced from: >>>>>>>>>>>>>> -[SDLApplication terminate:] in cocoahelper.o >>>>>>>>>>>>>> ld: symbol(s) not found >>>>>>>>>>>>>> collect2: ld returned 1 exit status >>>>>>>>>>>>>> make: *** [cocoahelper.dylib] Error 1 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> I am now at a loss. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Adam >>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> application-builder mailing list >>>>>>>>>>>>>> application-builder@lispniks.com >>>>>>>>>>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Elliott Slaughter >>>>>>>>>>>>> >>>>>>>>>>>>> "Don't worry about what anybody else is going to do. The best >>>>>>>>>>>>> way to predict the future is to invent it." - Alan Kay >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Elliott Slaughter >>>>>>>>>>>> >>>>>>>>>>>> "Don't worry about what anybody else is going to do. The best >>>>>>>>>>>> way to predict the future is to invent it." - Alan Kay >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> application-builder mailing list >>>>>>>>>>>> application-builder@lispniks.com >>>>>>>>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> application-builder mailing list >>>>>>>>> application-builder@lispniks.com >>>>>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Elliott Slaughter >>>>>>>> >>>>>>>> "Don't worry about what anybody else is going to do. The best way to >>>>>>>> predict the future is to invent it." - Alan Kay >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> application-builder mailing list >>>>>>>> application-builder@lispniks.com >>>>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> application-builder mailing list >>>>>>> application-builder@lispniks.com >>>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Elliott Slaughter >>>>>> >>>>>> "Don't worry about what anybody else is going to do. The best way to >>>>>> predict the future is to invent it." - Alan Kay >>>>>> >>>>>> _______________________________________________ >>>>>> application-builder mailing list >>>>>> application-builder@lispniks.com >>>>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>>>> >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> application-builder mailing list >>>> application-builder@lispniks.com >>>> http://www.lispniks.com/mailman/listinfo/application-builder >>>> >>>> >>> >>> >>> -- >>> Elliott Slaughter >>> >>> "Don't worry about what anybody else is going to do. The best way to >>> predict the future is to invent it." - Alan Kay >>> >>> _______________________________________________ >>> application-builder mailing list >>> application-builder@lispniks.com >>> http://www.lispniks.com/mailman/listinfo/application-builder >>> >>> >> >> _______________________________________________ >> application-builder mailing list >> application-builder@lispniks.com >> http://www.lispniks.com/mailman/listinfo/application-builder >> >> > > > -- > Elliott Slaughter > > "Don't worry about what anybody else is going to do. The best way to > predict the future is to invent it." - Alan Kay > > _______________________________________________ > application-builder mailing list > application-builder@lispniks.com > http://www.lispniks.com/mailman/listinfo/application-builder > >
_______________________________________________ application-builder mailing list application-builder@lispniks.com http://www.lispniks.com/mailman/listinfo/application-builder