From d1914c5af484791ee5d8f20261c08cecf113d3a9 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Wed, 20 Sep 2017 10:17:59 -0700 Subject: [PATCH] 41736: NO_INTERACTIVE_COMMENTS in $(...) --- ChangeLog | 2 ++ NEWS | 8 ++++++++ Src/exec.c | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 302177f9b..34163e55f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2017-09-20 Barton E. Schaefer + * 41736: NEWS, Src/exec.c: NO_INTERACTIVE_COMMENTS in $(...) + * 41731: Doc/Zsh/params.yo: reformat and expand doc for 41698. 2017-09-18 Oliver Kiddle diff --git a/NEWS b/NEWS index 6847350ef..796a2c90d 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,14 @@ CHANGES FROM PREVIOUS VERSIONS OF ZSH Note also the list of incompatibilities in the README file. +Changes from 5.4 to 5.4.3 +------------------------- + +The effect of the NO_INTERACTIVE_COMMENTS option extends into $(...) and +`...` command substitutions when used on the command line. Previously, +comments were always recognized within command substitutions unless the +comment character "#" was disabled via reset of $histchars. + Changes from 5.3.1 to 5.4 ------------------------- diff --git a/Src/exec.c b/Src/exec.c index d1367660c..31edfab55 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -4509,7 +4509,12 @@ getoutput(char *cmd, int qt) pid_t pid; char *s; - if (!(prog = parse_string(cmd, 0))) + int onc = nocomments; + nocomments = (interact && unset(INTERACTIVECOMMENTS)); + prog = parse_string(cmd, 0); + nocomments = onc; + + if (!prog) return NULL; if ((s = simple_redir_name(prog, REDIR_READ))) {