Skip to content

Commit

Permalink
replace man.c with dman.d
Browse files Browse the repository at this point in the history
  • Loading branch information
WalterBright committed May 30, 2018
1 parent a25bee1 commit 7765879
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 100 deletions.
94 changes: 94 additions & 0 deletions dm/src/make/dman.d
@@ -0,0 +1,94 @@
/**
* Compiler implementation of the D programming language
* http://dlang.org
*
* Copyright: Copyright (C) 1999-2018 by The D Language Foundation, All Rights Reserved
* Authors: Walter Bright, http://www.digitalmars.com
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/man.d, root/_man.d)
* Documentation: https://dlang.org/phobos/dmd_root_man.html
* Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/man.d
*/

module man;

import core.stdc.stdio;
import core.stdc.stdlib;
import core.stdc.string;
import core.sys.posix.unistd;
import core.sys.windows.windows;

version (Windows)
{
extern (C++) void browse(const(char)* url)
in
{
assert(strncmp(url, "http://", 7) == 0 || strncmp(url, "https://", 8) == 0);
}
body
{
ShellExecuteA(null, "open", url, null, null, SW_SHOWNORMAL);
}
}
else version (OSX)
{
extern (C++) void browse(const(char)* url)
in
{
assert(strncmp(url, "http://", 7) == 0 || strncmp(url, "https://", 8) == 0);
}
body
{
pid_t childpid;
const(char)*[5] args;
char* browser = getenv("BROWSER");
if (browser)
{
browser = strdup(browser);
args[0] = browser;
args[1] = url;
args[2] = null;
}
else
{
args[0] = "open";
args[1] = url;
args[2] = null;
}
childpid = fork();
if (childpid == 0)
{
execvp(args[0], cast(char**)args);
perror(args[0]); // failed to execute
return;
}
}
}
else version (Posix)
{
extern (C++) void browse(const(char)* url)
in
{
assert(strncmp(url, "http://", 7) == 0 || strncmp(url, "https://", 8) == 0);
}
body
{
pid_t childpid;
const(char)*[3] args;
const(char)* browser = getenv("BROWSER");
if (browser)
browser = strdup(browser);
else
browser = "xdg-open";
args[0] = browser;
args[1] = url;
args[2] = null;
childpid = fork();
if (childpid == 0)
{
execvp(args[0], cast(char**)args);
perror(args[0]); // failed to execute
return;
}
}
}
100 changes: 0 additions & 100 deletions dm/src/make/man.c

This file was deleted.

0 comments on commit 7765879

Please sign in to comment.