Description of problem: Consider the following script: #!/bin/zsh # Comment containing ' VAR=$( echo a # Comment containing ' ) echo $VAR The script is syntactically correct but zsh throws an error executing it. Version-Release number of selected component (if applicable): zsh-4.2.6-2 (reproduced also with Fedora's zsh-4.3.6-5 version) How reproducible: always Steps to Reproduce: 1. run the script above Actual results: parse error near `VAR=$(' Expected results: a Additional info: ksh and bash are able to run the script without error. No error appears when the $(...) command substitution is replaced with `...`. I think there's a bug in parsing the content in the round brackets: the '\'' character is treated as special even when it appears in a comment.
Created attachment 331118 [details] Proposed patch Change in the (...) parsing function: if the '#' is found, all the characters until the newline lose their special meaning.
Patch has been sent upstream: http://www.zsh.org/mla/workers/2009/msg00396.html
Created attachment 333448 [details] Improved patch The previous patch didn't really care about the context of the '#' character which might have caused problems in cases where it was not meant as beginning of a comment. I'm attaching the version that was committed upstream: http://zsh.cvs.sourceforge.net/viewvc/zsh/zsh/Src/lex.c?r1=1.49&r2=1.50
Created attachment 333724 [details] Even more improved patch... There was still a small problem with the latest patch: http://www.zsh.org/mla/workers/2009/msg00408.html. (upstream lex.c: http://zsh.cvs.sourceforge.net/viewvc/zsh/zsh/Src/lex.c?revision=1.51&view=markup#l_1799)
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2009-0463.html