diff options
Diffstat (limited to 'frontends/cocoa/NetsurfApp.m')
-rw-r--r-- | frontends/cocoa/NetsurfApp.m | 299 |
1 files changed, 147 insertions, 152 deletions
diff --git a/frontends/cocoa/NetsurfApp.m b/frontends/cocoa/NetsurfApp.m index 1ecdc51a7..4c5442a2d 100644 --- a/frontends/cocoa/NetsurfApp.m +++ b/frontends/cocoa/NetsurfApp.m @@ -59,158 +59,153 @@ static bool cocoa_done = false; * * \param error The message to display to the user. */ -static void die(const char * const error) +static void die(const char *const error) { - [NSException raise: @"NetsurfDie" format: @"Error: %s", error]; + [NSException raise:@"NetsurfDie" format:@"Error: %s", error]; } -- (void) loadOptions +- (void)loadOptions { - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults registerDefaults: [NSDictionary dictionaryWithObjectsAndKeys: - cocoa_get_user_path( @"Cookies" ), - kCookiesFileOption, - cocoa_get_user_path( @"URLs" ), - kURLsFileOption, - [NSString stringWithUTF8String: NETSURF_HOMEPAGE], - kHomepageURLOption, - nil]]; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: + cocoa_get_user_path(@"Cookies"), + kCookiesFileOption, + cocoa_get_user_path(@"URLs"), + kURLsFileOption, + [NSString stringWithUTF8String:NETSURF_HOMEPAGE], + kHomepageURLOption, + nil]]; + nsoption_setnull_charp(cookie_file, strdup([[defaults objectForKey:kCookiesFileOption] UTF8String])); - nsoption_setnull_charp(cookie_file, strdup( [[defaults objectForKey: kCookiesFileOption] UTF8String] )); + nsoption_setnull_charp(cookie_jar, strdup(nsoption_charp(cookie_file))); - nsoption_setnull_charp(cookie_jar, strdup( nsoption_charp(cookie_file) )); + nsoption_setnull_charp(homepage_url, strdup([[defaults objectForKey:kHomepageURLOption] UTF8String])); - nsoption_setnull_charp(homepage_url, strdup( [[defaults objectForKey: kHomepageURLOption] UTF8String] )); + urldb_load([[defaults objectForKey:kURLsFileOption] UTF8String]); + urldb_load_cookies(nsoption_charp(cookie_file)); - urldb_load( [[defaults objectForKey: kURLsFileOption] UTF8String] ); - urldb_load_cookies( nsoption_charp(cookie_file) ); - - cocoa_update_scale_factor(); - LOG("done setup"); + cocoa_update_scale_factor(); + LOG("done setup"); } -- (void) saveOptions +- (void)saveOptions { - urldb_save_cookies( nsoption_charp(cookie_file) ); - urldb_save( [[[NSUserDefaults standardUserDefaults] objectForKey: kURLsFileOption] UTF8String] ); + urldb_save_cookies(nsoption_charp(cookie_file)); + urldb_save([[[NSUserDefaults standardUserDefaults] objectForKey:kURLsFileOption] UTF8String]); } -- (void) run +- (void)run { @autoreleasepool { - @autoreleasepool { - [self finishLaunching]; + [self finishLaunching]; - [self loadOptions]; + [self loadOptions]; } while (!cocoa_done) { @autoreleasepool { - NSEvent *event = - [self nextEventMatchingMask: NSEventMaskAny - untilDate: [NSDate distantFuture] - inMode: NSDefaultRunLoopMode - dequeue: YES]; + [self nextEventMatchingMask:NSEventMaskAny + untilDate:[NSDate distantFuture] + inMode:NSDefaultRunLoopMode + dequeue:YES]; if (nil != event) { - [self sendEvent: event]; - [self updateWindows]; + [self sendEvent:event]; + [self updateWindows]; } } - } [self saveOptions]; - } } --(void) terminate: (id)sender +- (void)terminate:(id)sender { - [[NSNotificationCenter defaultCenter] postNotificationName:NSApplicationWillTerminateNotification object:self]; - - cocoa_done = true; - [self postEvent: [NSEvent otherEventWithType: NSEventTypeApplicationDefined - location: NSZeroPoint - modifierFlags: 0 - timestamp: 0 - windowNumber: 0 - context: NULL - subtype: 0 - data1: 0 - data2: 0] - atStart: YES]; + [[NSNotificationCenter defaultCenter] postNotificationName:NSApplicationWillTerminateNotification object:self]; + + cocoa_done = true; + [self postEvent:[NSEvent otherEventWithType:NSEventTypeApplicationDefined + location:NSZeroPoint + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:NULL + subtype:0 + data1:0 + data2:0] + atStart:YES]; } @end #pragma mark - -static NSString *cocoa_get_preferences_path( void ) +static NSString *cocoa_get_preferences_path(void) { - NSArray *paths = NSSearchPathForDirectoriesInDomains( NSApplicationSupportDirectory, NSUserDomainMask, YES ); - NSCAssert( [paths count] >= 1, @"Where is the application support directory?" ); + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSCAssert([paths count] >= 1, @"Where is the application support directory?"); - NSString *netsurfPath = [[paths objectAtIndex: 0] stringByAppendingPathComponent: @"NetSurf"]; + NSString *netsurfPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"NetSurf"]; - NSFileManager *fm = [NSFileManager defaultManager]; - BOOL isDirectory = NO; - BOOL exists = [fm fileExistsAtPath: netsurfPath isDirectory: &isDirectory]; + NSFileManager *fm = [NSFileManager defaultManager]; + BOOL isDirectory = NO; + BOOL exists = [fm fileExistsAtPath:netsurfPath isDirectory:&isDirectory]; - if (!exists) { - exists = [fm createDirectoryAtPath: netsurfPath withIntermediateDirectories: YES attributes: nil error: NULL]; - isDirectory = YES; - } - if (!(exists && isDirectory)) { - die( "Cannot create netsurf preferences directory" ); - } + if (!exists) { + exists = [fm createDirectoryAtPath:netsurfPath withIntermediateDirectories:YES attributes:nil error:NULL]; + isDirectory = YES; + } + if (!(exists && isDirectory)) { + die("Cannot create netsurf preferences directory"); + } - return netsurfPath; + return netsurfPath; } -NSString *cocoa_get_user_path( NSString *fileName ) +NSString *cocoa_get_user_path(NSString *fileName) { - return [cocoa_get_preferences_path() stringByAppendingPathComponent: fileName]; + return [cocoa_get_preferences_path() stringByAppendingPathComponent:fileName]; } -static const char *cocoa_get_options_file( void ) +static const char *cocoa_get_options_file(void) { - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults registerDefaults: [NSDictionary dictionaryWithObjectsAndKeys: - cocoa_get_user_path( @"Options" ), kOptionsFileOption, - nil]]; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: + cocoa_get_user_path(@"Options"), kOptionsFileOption, + nil]]; - return [[defaults objectForKey: kOptionsFileOption] UTF8String]; + return [[defaults objectForKey:kOptionsFileOption] UTF8String]; } -static NSApplication *cocoa_prepare_app( void ) +static NSApplication *cocoa_prepare_app(void) { - /* if application instance has already been created return it */ - if (NSApp != nil) { - return NSApp; - } + /* if application instance has already been created return it */ + if (NSApp != nil) { + return NSApp; + } - NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; + NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; - /* Obtain principle class of bundle which must implement sharedApplication API */ - Class principalClass = NSClassFromString([infoDictionary objectForKey:@"NSPrincipalClass"]); - NSCAssert([principalClass respondsToSelector:@selector(sharedApplication)], - @"Principal class must implement sharedApplication."); + /* Obtain principle class of bundle which must implement sharedApplication API */ + Class principalClass = NSClassFromString([infoDictionary objectForKey:@"NSPrincipalClass"]); + NSCAssert([principalClass respondsToSelector:@selector(sharedApplication)], + @"Principal class must implement sharedApplication."); - /* create application instance */ - [principalClass sharedApplication]; + /* create application instance */ + [principalClass sharedApplication]; - /* load interface nib */ - NSString *mainNibName = [infoDictionary objectForKey:@"NSMainNibFile"]; - NSNib *mainNib = [[NSNib alloc] initWithNibNamed:mainNibName bundle:[NSBundle mainBundle]]; - [mainNib instantiateNibWithOwner:NSApp topLevelObjects:nil]; + /* load interface nib */ + NSString *mainNibName = [infoDictionary objectForKey:@"NSMainNibFile"]; + NSNib *mainNib = [[NSNib alloc] initWithNibNamed:mainNibName bundle:[NSBundle mainBundle]]; + [mainNib instantiateNibWithOwner:NSApp topLevelObjects:nil]; - return NSApp; + return NSApp; } /** @@ -221,87 +216,87 @@ static NSApplication *cocoa_prepare_app( void ) */ static nserror set_defaults(struct nsoption_s *defaults) { - /* Set defaults for absent option strings */ - const char * const ca_bundle = [[[NSBundle mainBundle] pathForResource: @"ca-bundle" ofType: @""] UTF8String]; + /* Set defaults for absent option strings */ + const char *const ca_bundle = [[[NSBundle mainBundle] pathForResource:@"ca-bundle" ofType:@""] UTF8String]; - nsoption_setnull_charp(ca_bundle, strdup(ca_bundle)); + nsoption_setnull_charp(ca_bundle, strdup(ca_bundle)); - return NSERROR_OK; + return NSERROR_OK; } -int main( int argc, char **argv ) +int main(int argc, char **argv) { - nsurl *url; - nserror error; - struct netsurf_table cocoa_table = { - .misc = cocoa_misc_table, - .window = cocoa_window_table, - .clipboard = cocoa_clipboard_table, - .download = cocoa_download_table, - .fetch = cocoa_fetch_table, - .search = cocoa_search_table, - .bitmap = cocoa_bitmap_table, - .layout = cocoa_layout_table, - }; - - error = netsurf_register(&cocoa_table); - if (error != NSERROR_OK) { - die("NetSurf operation table failed registration"); - } + nsurl *url; + nserror error; + struct netsurf_table cocoa_table = { + .misc = cocoa_misc_table, + .window = cocoa_window_table, + .clipboard = cocoa_clipboard_table, + .download = cocoa_download_table, + .fetch = cocoa_fetch_table, + .search = cocoa_search_table, + .bitmap = cocoa_bitmap_table, + .layout = cocoa_layout_table, + }; + + error = netsurf_register(&cocoa_table); + if (error != NSERROR_OK) { + die("NetSurf operation table failed registration"); + } - const char * const messages = [[[NSBundle mainBundle] pathForResource: @"Messages" ofType: @""] UTF8String]; - const char * const options = cocoa_get_options_file(); + const char *const messages = [[[NSBundle mainBundle] pathForResource:@"Messages" ofType:@""] UTF8String]; + const char *const options = cocoa_get_options_file(); - /* initialise logging. Not fatal if it fails but not much we + /* initialise logging. Not fatal if it fails but not much we * can do about it either. */ - nslog_init(NULL, &argc, argv); + nslog_init(NULL, &argc, argv); - /* user options setup */ - error = nsoption_init(set_defaults, &nsoptions, &nsoptions_default); - if (error != NSERROR_OK) { - die("Options failed to initialise"); - } - nsoption_read(options, NULL); - nsoption_commandline(&argc, argv, NULL); + /* user options setup */ + error = nsoption_init(set_defaults, &nsoptions, &nsoptions_default); + if (error != NSERROR_OK) { + die("Options failed to initialise"); + } + nsoption_read(options, NULL); + nsoption_commandline(&argc, argv, NULL); - error = messages_add_from_file(messages); + error = messages_add_from_file(messages); - /* common initialisation */ - error = netsurf_init(NULL); - if (error != NSERROR_OK) { - die("NetSurf failed to initialise"); - } + /* common initialisation */ + error = netsurf_init(NULL); + if (error != NSERROR_OK) { + die("NetSurf failed to initialise"); + } - /* Initialise filename allocator */ - filename_initialise(); + /* Initialise filename allocator */ + filename_initialise(); - (void)apple_image_init(); + (void)apple_image_init(); - NSApplication *app = cocoa_prepare_app(); + NSApplication *app = cocoa_prepare_app(); - for (int i = 1; i < argc; i++) { - /* skip -psn_* and other possible options */ - if (argv[i][0] == '-') - continue; + for (int i = 1; i < argc; i++) { + /* skip -psn_* and other possible options */ + if (argv[i][0] == '-') + continue; - error = nsurl_create(argv[i], &url); - if (error == NSERROR_OK) { - error = browser_window_create(BW_CREATE_HISTORY, - url, - NULL, - NULL, - NULL); - nsurl_unref(url); - } - if (error != NSERROR_OK) { - cocoa_warning(messages_get_errorcode(error), 0); - } + error = nsurl_create(argv[i], &url); + if (error == NSERROR_OK) { + error = browser_window_create(BW_CREATE_HISTORY, + url, + NULL, + NULL, + NULL); + nsurl_unref(url); } + if (error != NSERROR_OK) { + cocoa_warning(messages_get_errorcode(error), 0); + } + } - [app run]; + [app run]; - netsurf_exit(); + netsurf_exit(); - return 0; + return 0; } |