Mercurial > projects > ldc
diff dmd/man.c @ 876:27a379f288bf
Merged DMD 1.039
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 07 Jan 2009 19:34:48 +0100 |
parents | 330f999ade44 |
children | c57e71c5586f |
line wrap: on
line diff
--- a/dmd/man.c Tue Jan 06 16:33:51 2009 +0100 +++ b/dmd/man.c Wed Jan 07 19:34:48 2009 +0100 @@ -37,7 +37,7 @@ pid_t childpid; const char *args[3]; - const char *browser = getenv("BROWSER"); + char *browser = getenv("BROWSER"); if (browser) browser = strdup(browser); else @@ -58,3 +58,43 @@ #endif +#if __APPLE__ + +#include <sys/types.h> +#include <sys/wait.h> +#include <unistd.h> + +void browse(const char *url) +{ + pid_t childpid; + const char *args[5]; + + char *browser = getenv("BROWSER"); + if (browser) + { browser = strdup(browser); + args[0] = browser; + args[1] = url; + args[2] = NULL; + } + else + { + //browser = "/Applications/Safari.app/Contents/MacOS/Safari"; + args[0] = "open"; + args[1] = "-a"; + args[2] = "/Applications/Safari.app"; + args[3] = url; + args[4] = NULL; + } + + childpid = fork(); + if (childpid == 0) + { + execvp(args[0], (char**)args); + perror(args[0]); // failed to execute + return; + } +} + +#endif + +