summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Howard2010-01-30 16:14:04 +0000
committerSimon Howard2010-01-30 16:14:04 +0000
commitfdcd8dda0935403185ba307304028d3a682297a9 (patch)
treeea7bb9c04d34c79ad0c394495f08cd4064a38c12
parenta054475997a14499a9bce528a64efb22ce2fe2b0 (diff)
downloadchocolate-doom-fdcd8dda0935403185ba307304028d3a682297a9.tar.gz
chocolate-doom-fdcd8dda0935403185ba307304028d3a682297a9.tar.bz2
chocolate-doom-fdcd8dda0935403185ba307304028d3a682297a9.zip
Change directory to home directory before launching the game, so that
recorded demos go somewhere sensible. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1835
-rw-r--r--NEWS3
-rw-r--r--pkg/osx/Execute.m11
2 files changed, 13 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index ba7c81b1..ac12bded 100644
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,8 @@
no longer necessary to compile binaries for this system by
hand. The package includes a simple graphical launcher
program and can be installed simply by dragging the "Chocolate
- Doom" icon to the Applications folder.
+ Doom" icon to the Applications folder. (thanks to Rikard Lang
+ for extensive testing and feedback)
* The video mode auto-adjust code will automatically choose
windowed mode if no fullscreen video modes are available.
* The zone memory size is automatically reduced on systems with
diff --git a/pkg/osx/Execute.m b/pkg/osx/Execute.m
index bb4eed45..608443e2 100644
--- a/pkg/osx/Execute.m
+++ b/pkg/osx/Execute.m
@@ -100,6 +100,7 @@ static void DoExec(const char *executable, const char *iwad, const char *args)
void ExecuteProgram(const char *executable, const char *iwad, const char *args)
{
pid_t childpid;
+ char *homedir;
childpid = fork();
@@ -107,6 +108,16 @@ void ExecuteProgram(const char *executable, const char *iwad, const char *args)
{
signal(SIGCHLD, SIG_DFL);
+ // Change directory to home dir before launch, so that any demos
+ // are saved somewhere sensible.
+
+ homedir = getenv("HOME");
+
+ if (homedir != NULL)
+ {
+ chdir(homedir);
+ }
+
DoExec(executable, iwad, args);
}
else