about summary refs log tree commit diff
path: root/src/engine
diff options
context:
space:
mode:
authorJoel de Vahl <joel@stalverk80.se>2008-03-22 15:09:49 +0000
committerJoel de Vahl <joel@stalverk80.se>2008-03-22 15:09:49 +0000
commitddca01abb612ee586a5274ce166f16a582db9544 (patch)
treebd3b74de68977db301b6c871d78009255dc572e1 /src/engine
parent1ee961d6d13125eb7e59c08a5dbe3ee7dd3bdf0e (diff)
downloadzcatch-ddca01abb612ee586a5274ce166f16a582db9544.tar.gz
zcatch-ddca01abb612ee586a5274ce166f16a582db9544.zip
OSX fixes
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/client/ec_client.c12
-rw-r--r--src/engine/e_system.c4
-rw-r--r--src/engine/server/es_server.c12
3 files changed, 28 insertions, 0 deletions
diff --git a/src/engine/client/ec_client.c b/src/engine/client/ec_client.c
index b9b1165c..e83975b1 100644
--- a/src/engine/client/ec_client.c
+++ b/src/engine/client/ec_client.c
@@ -1470,6 +1470,18 @@ void client_save_line(const char *line)
 
 int main(int argc, char **argv)
 {
+#if defined(CONF_PLATFORM_MACOSX)
+	char buffer[512];
+	unsigned pos = strrchr(argv[0], '/') - argv[0];
+
+	if(pos >= 512)
+		return -1;
+
+	strncpy(buffer, argv[0], 511);
+	buffer[pos] = 0;
+	chdir(buffer);
+#endif
+
 	/* init the engine */
 	dbg_msg("client", "starting...");
 	engine_init("Teewars");
diff --git a/src/engine/e_system.c b/src/engine/e_system.c
index fa4ba459..198b867d 100644
--- a/src/engine/e_system.c
+++ b/src/engine/e_system.c
@@ -760,9 +760,13 @@ int fs_storage_path(const char *appname, char *path, int max)
 	if(!home)
 		return 0;
 
+#if defined(CONF_PLATFORM_MACOSX)
+	snprintf(path, max, "%s/Library/Application Support/%s", home, appname);
+#else
 	snprintf(path, max, "%s/.%s", home, appname);
 	for(i = strlen(home)+2; path[i]; i++)
 		path[i] = tolower(path[i]);
+#endif
 	
 	return 1;
 #endif
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c
index 41306f07..adb09cb2 100644
--- a/src/engine/server/es_server.c
+++ b/src/engine/server/es_server.c
@@ -1119,6 +1119,18 @@ static void server_register_commands()
 
 int main(int argc, char **argv)
 {
+#if defined(CONF_PLATFORM_MACOSX)
+	char buffer[512];
+	unsigned pos = strrchr(argv[0], '/') - argv[0];
+
+	if(pos >= 512)
+		return -1;
+
+	strncpy(buffer, argv[0], 511);
+	buffer[pos] = 0;
+	chdir(buffer);
+#endif
+
 	/* init the engine */
 	dbg_msg("server", "starting...");
 	engine_init("Teewars");