Search
lxdream.org :: lxdream/src/cocoaui/paths_osx.m
lxdream 0.9.1
released Jun 29
Download Now
filename src/cocoaui/paths_osx.m
changeset 1041:5fcc39857c5c
prev1038:f220d18c0615
next1297:7e98a164b2d9
author nkeynes
date Fri Jun 26 05:47:04 2009 +0000 (11 years ago)
permissions -rw-r--r--
last change Refactor path operations into lxpaths.[ch]
view annotate diff log raw
     1 /**
     2  * $Id$
     3  *
     4  * Cocoa builds need to use different paths from ordinary builds, since
     5  * the message catalogs, default config, etc are all bundle-relative.
     6  * Otherwise paths use the standard unix install paths
     7  *
     8  * Copyright (c) 2008 Nathan Keynes.
     9  *
    10  * This program is free software; you can redistribute it and/or modify
    11  * it under the terms of the GNU General Public License as published by
    12  * the Free Software Foundation; either version 2 of the License, or
    13  * (at your option) any later version.
    14  *
    15  * This program is distributed in the hope that it will be useful,
    16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    18  * GNU General Public License for more details.
    19  */
    21 #include <string.h>
    22 #include <glib/gstrfuncs.h>
    24 #include "lxdream.h"
    25 #include "lxpaths.h"
    27 #include <AppKit/AppKit.h>
    29 static char *bundle_resource_path = NULL;
    30 static char *bundle_plugin_path = NULL;
    31 static char *user_data_path = NULL;
    33 static char *get_bundle_resource_path()
    34 {
    35     if( bundle_resource_path == NULL ) {
    36         NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    37         NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
    38         bundle_resource_path = strdup([resourcePath UTF8String]);
    39         [pool release];
    40     }
    41     return bundle_resource_path;    
    42 }
    44 const char *get_sysconf_path()
    45 {
    46     return get_bundle_resource_path();
    47 }
    49 const char *get_locale_path()
    50 {
    51     return get_bundle_resource_path();
    52 }
    54 const char *get_plugin_path()
    55 {
    56     if( bundle_plugin_path == NULL ) {
    57         NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    58         NSString *pluginPath = [[NSBundle mainBundle] builtInPlugInsPath];
    59         bundle_plugin_path = strdup([pluginPath UTF8String]);
    60         [pool release];
    61     }
    62     return bundle_plugin_path;    
    63 }
    66 const char *get_user_data_path()
    67 {
    68     if( user_data_path == NULL ) {
    69         char *home = getenv("HOME");
    70         user_data_path = g_strdup_printf( "%s/Library/Application Support/Lxdream", home );
    71     }
    72     return user_data_path;
    73 }
.