Skip to content

Commit a86adfc

Browse files
committed
subprocess_run: use string internally for expediency
1 parent d6aad57 commit a86adfc

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

+stdlib/subprocess_run.m

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,38 +27,37 @@
2727

2828
function [status, msg] = subprocess_run(cmd, opt)
2929
arguments
30-
cmd {mustBeTextScalar}
30+
cmd (1,:) string
3131
opt.env struct {mustBeScalarOrEmpty} = struct.empty
3232
opt.cwd {mustBeTextScalar} = ''
3333
opt.stdin {mustBeTextScalar} = ''
3434
opt.stdout (1,1) logical = true
3535
opt.stderr (1,1) logical = true
3636
end
3737

38-
cmd = char(cmd);
3938

4039
if ~strempty(opt.cwd)
41-
cmd = strjoin({'cd', char(opt.cwd), '&&', cmd});
40+
cmd = join(["cd", opt.cwd, "&&", cmd]);
4241
end
4342

4443
if ~strempty(opt.stdin)
45-
cmd = strjoin({'echo', char(opt.stdin), '|', cmd});
44+
cmd = join(["echo", opt.stdin, "|", cmd]);
4645
end
4746

4847

4948
if ~opt.stderr
5049
if ispc
51-
cmd = strjoin({cmd, '2> nul'});
50+
cmd = join([cmd, "2> nul"]);
5251
else
53-
cmd = strjoin({cmd, '2> /dev/null'});
52+
cmd = join([cmd, "2> /dev/null"]);
5453
end
5554
end
5655

5756
if ~opt.stdout
5857
if ispc
59-
cmd = strjoin({cmd, '> nul'});
58+
cmd = join([cmd, "> nul"]);
6059
else
61-
cmd = strjoin({cmd, '> /dev/null'});
60+
cmd = join([cmd, "> /dev/null"]);
6261
end
6362
end
6463

@@ -86,7 +85,7 @@
8685
inold = getenv("GFORTRAN_STDIN_UNIT");
8786
setenv("GFORTRAN_STDIN_UNIT", "5");
8887

89-
[status, msg] = system(cmd, env_pairs{:});
88+
[status, msg] = system(join(cmd), env_pairs{:});
9089

9190
setenv("GFORTRAN_STDOUT_UNIT", outold);
9291
setenv("GFORTRAN_STDERR_UNIT", errold);

0 commit comments

Comments
 (0)