From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9716 invoked by alias); 20 Jun 2015 18:52:17 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 35548 Received: (qmail 5644 invoked from network); 20 Jun 2015 18:52:14 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.0 X-Originating-IP: [80.3.228.158] X-Spam: 0 X-Authority: v=2.1 cv=RLtOZNW+ c=1 sm=1 tr=0 a=P+FLVI8RzFchTbbqTxIDRw==:117 a=P+FLVI8RzFchTbbqTxIDRw==:17 a=kj9zAlcOel0A:10 a=NLZqzBF-AAAA:8 a=uuVFTHB9fcs7CgfztegA:9 a=CjuIK1q_8ugA:10 Date: Sat, 20 Jun 2015 19:52:09 +0100 From: Peter Stephenson To: Zsh hackers list Subject: PATCH: fix tests Message-ID: <20150620195209.3dca8105@ntlworld.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit All tests now passing on the typeset-array branch. pws diff --git a/Src/builtin.c b/Src/builtin.c index 6cccf53..5eb7bfb 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -443,6 +443,28 @@ execbuiltin(LinkList args, LinkList assigns, Builtin bn) fputc(' ', xtrerr); quotedzputs(*fullargv++, xtrerr); } + if (assigns) { + LinkNode node; + for (node = firstnode(assigns); node; incnode(node)) { + Asgment asg = (Asgment)node; + fputc(' ', xtrerr); + quotedzputs(asg->name, xtrerr); + if (asg->is_array) { + LinkNode arrnode; + fprintf(xtrerr, "=("); + for (arrnode = firstnode(asg->value.array); + arrnode; + incnode(arrnode)) { + fputc(' ', xtrerr); + quotedzputs((char *)getdata(arrnode), xtrerr); + } + fprintf(xtrerr, " )"); + } else if (asg->value.scalar) { + fputc('=', xtrerr); + quotedzputs(asg->value.scalar, xtrerr); + } + } + } fputc('\n', xtrerr); fflush(xtrerr); } diff --git a/Src/exec.c b/Src/exec.c index 967f86e..6066d55 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3488,7 +3488,6 @@ execcmd(Estate state, int input, int output, int how, int last1) wordcode ac = *state->pc++; char *name = ecgetstr(state, EC_DUPTOK, &htok); Asgment asg; - int htok; local_list1(svl); DPUTS(wc_code(ac) != WC_ASSIGN, diff --git a/Test/D01prompt.ztst b/Test/D01prompt.ztst index 3074efe..2638e24 100644 --- a/Test/D01prompt.ztst +++ b/Test/D01prompt.ztst @@ -199,5 +199,5 @@ ?+zsh_directory_name:4> [[ d == n ]] ?+zsh_directory_name:12> [[ /very_long_directory_name == (#b)(*)/very_long_directory_name ]] ?+zsh_directory_name:14> return 0 -?+fn:7> local 'd=~[:l]' +?+fn:7> local d='~[:l]' ?+fn:8> print '~[:l]' diff --git a/Test/E01options.ztst b/Test/E01options.ztst index d64f7ac..ca3f06c 100644 --- a/Test/E01options.ztst +++ b/Test/E01options.ztst @@ -570,6 +570,15 @@ >unset >globassign + # This test is now somewhat artificial as + # KSH_TYPESET only applies to the builtin + # interface. Tests to the more standard + # reserved word interface appear elsewhere. + ( + # reserved words are handled during parsing, + # hence eval... + disable -r typeset + eval ' setopt kshtypeset ktvars=(ktv1 ktv2) typeset ktfoo=`echo arg1 arg2` $ktvars @@ -580,6 +589,8 @@ print $noktfoo print $+noktarg1 $+noktarg2 unset ktfoo ktv1 ktv2 noktfoo noktarg2 + ' + ) 0:KSH_TYPESET option >1 1 0 >arg1 arg2