Fix: corrected empty double quotes being added to cmd.exe /c on Windo… #511
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We used to run
bp::child(bp::shell, bp::args = {shell_script}, ...
which resulted inC:\Windows\system32\cmd.exe /c shell_script
out ofbuild_args
.After #256 we're getting
C:\Windows\system32\cmd.exe /c "" shell_script
(note the extra empty pair of double quotes) and the script refuses to run.This code in
exe_args_shell
with Process v1 on Windows:adds
exe
toargs_
, but this might be empty, especially withbp::shell
, and (newly after #256) gets translated to unwanted""
rather than being omitted, which causes prior user code to break.This PR only adds
exe
toargs_
if non-empty, so it fixes the use case described above.Also see my comments in #256 and related #73 for further info.
Using
bp::exe = {shell_script}
instead ofbp::args
might be a workaround for some.