On Thursday, 20 September 2018 at 07:24:52 UTC, berni wrote:
I need to execute a program and capture stdout, which I hoped std.process.execute would do. But unfortunatly this command also captures stderr, which I need to be ignored. When looking at the implementation of std.process.execute I see, that I can probably do this by removing "Redirect.stderrToStdout" in the function executeImpl. But for that I have to copy lots of functions from phobos in my own code. Is there an easier way to do that?

[...]

Here my complete program:

import std.process;
import std.stdio;
import std.array;

int main(string[] args)
{
    const result = execute(args[1..$]);
    writeln(result[1].replace("\\","\\\\").replace(" ","\\s"));
    return result[0];
}

Looks like `Config.stderrPassThrough` [1] should do what you want:

const result = execute(args[1..$], null, Config.stdErrPassThrough);

[1] https://dlang.org/phobos/std_process.html#.Config.stderrPassThrough

Reply via email to