@@ -14,12 +14,10 @@ * file. */ #include "config.h" -#define OF_APPLICATION_M - #include #include #include #include @@ -46,11 +44,12 @@ static void atexit_handler(void) { id delegate = [app delegate]; - [delegate applicationWillTerminate]; + if ([delegate respondsToSelector: @selector(applicationWillTerminate)]) + [delegate applicationWillTerminate]; [(id)delegate release]; } #define SIGNAL_HANDLER(sig) \ @@ -274,18 +273,18 @@ - (void)setDelegate: (id )delegate_ { delegate = delegate_; -#define REGISTER_SIGNAL(sig) \ - sig##Handler = (void(*)(id, SEL))[(id)delegate methodForSelector: \ - @selector(applicationDidReceive##sig)]; \ - if (sig##Handler != (void(*)(id, SEL))[OFObject \ - instanceMethodForSelector: \ - @selector(applicationDidReceive##sig)]) \ - signal(sig, handle##sig); \ - else \ +#define REGISTER_SIGNAL(sig) \ + if ([delegate respondsToSelector: \ + @selector(applicationDidReceive##sig)]) { \ + sig##Handler = (void(*)(id, SEL))[(id)delegate \ + methodForSelector: \ + @selector(applicationDidReceive##sig)]; \ + signal(sig, handle##sig); \ + } else \ signal(sig, SIG_DFL); REGISTER_SIGNAL(SIGINT) #ifndef _WIN32 REGISTER_SIGNAL(SIGHUP) REGISTER_SIGNAL(SIGUSR1) @@ -326,35 +325,7 @@ { [arguments release]; [environment release]; [super dealloc]; -} -@end - -@implementation OFObject (OFApplicationDelegate) -- (void)applicationDidFinishLaunching -{ - @throw [OFNotImplementedException exceptionWithClass: [self class] - selector: _cmd]; -} - -- (void)applicationWillTerminate -{ -} - -- (void)applicationDidReceiveSIGINT -{ -} - -- (void)applicationDidReceiveSIGHUP -{ -} - -- (void)applicationDidReceiveSIGUSR1 -{ -} - -- (void)applicationDidReceiveSIGUSR2 -{ } @end