Rev 11 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 11 | Rev 13 | ||
|---|---|---|---|
| Line 27... | Line 27... | ||
| 27 | if (strrchr (app_path, '\\') != NULL) |
27 | if (strrchr (app_path, '\\') != NULL) |
| 28 | *strrchr (app_path, '\\') = 0; |
28 | *strrchr (app_path, '\\') = 0; |
| 29 | } |
29 | } |
| 30 | return (app_path); |
30 | return (app_path); |
| 31 | } |
31 | } |
| - | 32 | #define sys_getdatapath() sys_getbasepath () |
|
| 32 | #elif defined(__APPLE__) |
33 | #elif defined(__APPLE__) |
| 33 | #include <CoreFoundation/CoreFoundation.h> |
34 | #include <CoreFoundation/CoreFoundation.h> |
| - | 35 | #include <sys/types.h> |
|
| - | 36 | #include <sys/stat.h> |
|
| - | 37 | #include <unistd.h> |
|
| 34 | #include <dlfcn.h> |
38 | #include <dlfcn.h> |
| - | 39 | #include <pwd.h> |
|
| 35 | void MessageBox (void *handle, char *msg, char *title, int buttons) |
40 | void MessageBox (void *handle, char *msg, char *title, int buttons) |
| 36 | { |
41 | { |
| 37 | const void *keys[2]; |
42 | const void *keys[2]; |
| 38 | const void *values[2]; |
43 | const void *values[2]; |
| 39 | SInt32 result; |
44 | SInt32 result; |
| Line 80... | Line 85... | ||
| 80 | if (strrchr (app_path, '/') != NULL) |
85 | if (strrchr (app_path, '/') != NULL) |
| 81 | *strrchr (app_path, '/') = 0; |
86 | *strrchr (app_path, '/') = 0; |
| 82 | strcat_s (app_path, 1024, "/Resources"); |
87 | strcat_s (app_path, 1024, "/Resources"); |
| 83 | } |
88 | } |
| 84 | return (app_path); |
89 | return (app_path); |
| - | 90 | } |
|
| - | 91 | char *sys_getdatapath (void) |
|
| - | 92 | { |
|
| - | 93 | static char data_path[1024] = ""; |
|
| - | 94 | if (data_path[0] == 0) |
|
| - | 95 | { |
|
| - | 96 | // Pierre-Marie Baty -- macOS .app fix |
|
| - | 97 | // peek in ~/Library/Application Support/<DOTTED BUNDLE ID> |
|
| - | 98 | // if the directory doesn't exist, create it |
|
| - | 99 | char bundle_id[256]; |
|
| - | 100 | char *homedir = getenv ("HOME"); |
|
| - | 101 | if (homedir == NULL) |
|
| - | 102 | homedir = getpwuid (getuid ())->pw_dir; |
|
| - | 103 | CFStringGetCString (CFBundleGetIdentifier (CFBundleGetMainBundle ()), bundle_id, sizeof (bundle_id), kCFStringEncodingUTF8); |
|
| - | 104 | sprintf (data_path, "%s/Library/Application Support/%s", homedir, bundle_id); |
|
| - | 105 | if (access (data_path, 0) != 0) |
|
| - | 106 | mkdir (data_path, 0755); |
|
| - | 107 | } |
|
| - | 108 | return (data_path); |
|
| 85 | } |
109 | } |
| 86 | #else // !_WIN32 && !__APPLE__ |
110 | #else // !_WIN32 && !__APPLE__ |
| 87 | #define MessageBox(handle,msg,title,btns) fprintf (stderr, msg) |
111 | #define MessageBox(handle,msg,title,btns) fprintf (stderr, msg) |
| 88 | #define MB_OK 0 |
112 | #define MB_OK 0 |
| 89 | char *sys_getbasepath (void) |
113 | char *sys_getbasepath (void) |
| 90 | { |
114 | { |
| 91 | return ("."); |
115 | return ("."); |
| 92 | } |
116 | } |
| - | 117 | #define sys_getdatapath() sys_getbasepath () |
|
| 93 | #endif // _WIN32 || __APPLE__ |
118 | #endif // _WIN32 || __APPLE__ |
| 94 | 119 | ||
| 95 | 120 | ||
| 96 | /* |
121 | /* |
| 97 | * Panic |
122 | * Panic |