Message ID | YAs9pTBsdskC8CPN@coredump.intra.peff.net (mailing list archive) |
---|---|
State | Accepted |
Commit | f9df80d861ca532a7677a85eee0f59fc3a8ec7d5 |
Headers | show |
Series | run-command: document use_shell option | expand |
On Fri, Jan 22, 2021 at 04:03:33PM -0500, Jeff King wrote: > Subject: [PATCH] run-command: document use_shell option Nice. This does indeed make things a little clearer (and as we've seen it was certainly not as clear before), so I think this is worth doing. Reviewed-by: Taylor Blau <me@ttaylorr.com> Thanks, Taylor
Jeff King <peff@peff.net> writes: > diff --git a/run-command.h b/run-command.h > index 6472b38bde..d08414a92e 100644 > --- a/run-command.h > +++ b/run-command.h > @@ -126,8 +126,15 @@ struct child_process { > */ > unsigned silent_exec_failure:1; > > - unsigned stdout_to_stderr:1; > + /** > + * Run the command from argv[0] using a shell (but note that we may > + * still optimize out the shell call if the command contains no > + * metacharacters). Note that further arguments to the command in > + * argv[1], etc, do not need to be shell-quoted. > + */ > unsigned use_shell:1; > + > + unsigned stdout_to_stderr:1; Reads well. Thanks. It is curious why "diff" chose to move stdout_to_stderr line around, though. > unsigned clean_on_exit:1; > unsigned wait_after_clean:1; > void (*clean_on_exit_handler)(struct child_process *process);
On Fri, Jan 22, 2021 at 02:21:15PM -0800, Junio C Hamano wrote: > > - unsigned stdout_to_stderr:1; > > + /** > > + * Run the command from argv[0] using a shell (but note that we may > > + * still optimize out the shell call if the command contains no > > + * metacharacters). Note that further arguments to the command in > > + * argv[1], etc, do not need to be shell-quoted. > > + */ > > unsigned use_shell:1; > > + > > + unsigned stdout_to_stderr:1; > > Reads well. Thanks. > > It is curious why "diff" chose to move stdout_to_stderr line around, > though. Heh, I also noticed that and tried a few options to no avail (both patience/histogram, but also diff.indentHeuristic). It is one deletion and 8 insertions even if it is done the other way: + /* + ... 6 more lines ... + */ + unsigned use_shell:1; + unsigned stdout_to_stderr:1; - unsigned use_shell:1; so it may just come down to the order of xdiff parsing the lines. -Peff
diff --git a/run-command.h b/run-command.h index 6472b38bde..d08414a92e 100644 --- a/run-command.h +++ b/run-command.h @@ -126,8 +126,15 @@ struct child_process { */ unsigned silent_exec_failure:1; - unsigned stdout_to_stderr:1; + /** + * Run the command from argv[0] using a shell (but note that we may + * still optimize out the shell call if the command contains no + * metacharacters). Note that further arguments to the command in + * argv[1], etc, do not need to be shell-quoted. + */ unsigned use_shell:1; + + unsigned stdout_to_stderr:1; unsigned clean_on_exit:1; unsigned wait_after_clean:1; void (*clean_on_exit_handler)(struct child_process *process);