From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2742 invoked by alias); 2 Jun 2015 13:42:22 -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: 35365 Received: (qmail 3734 invoked from network); 2 Jun 2015 13:42:21 -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=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=2VZL9NOo+6e7g9P6/Qzxa9vaNXZZRkY3zn1FG2Bzp9w=; b=eZQYyvyjhKd1q83A7TOGo0zjON9DOSiIcgcHShth7kH7YKjQdHSxCwmSK2y5Sw9vZB FUF0EfIfFp2sLWFydJwUJ5cxrupAi3jAANYeQyWXtm31cxR8kFHfKuoqu/45bNgJlnW8 Ewz7NtSHtFc8cJD6xEpvcpGxqxPbNFa5KeWLmwCoRiVzPLosdnkUAfYeTYYEmXJHgZOo ba5LSp8j2jY/PXpAOyJopArumrWGpBFLHtGJZD8hQo6SoROKpnK9c37pkHwO7Jz/wbCT x6E+YUBcltrFIQdllJ2GcBSyzyr2AlKTSSIf8oFBg3dpE11PXHcbSDqSCZAc+p+PC+wJ q8uw== X-Received: by 10.194.7.97 with SMTP id i1mr34699713wja.107.1433252154096; Tue, 02 Jun 2015 06:35:54 -0700 (PDT) From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH: GLOB_ASSIGN only affects scalar assignments Date: Tue, 2 Jun 2015 15:35:46 +0200 Message-Id: <1433252146-3208-1-git-send-email-mikachu@gmail.com> X-Mailer: git-send-email 2.4.0 In-Reply-To: <556D9EBE.4050702@gmail.com> References: <556D9EBE.4050702@gmail.com> --- isstr is set to (WC_ASSIGN_TYPE(ac) == WC_ASSIGN_SCALAR) a bit above this. Previously, when setopt globassign was in effect, this would happen, % typeset -A foo % foo=(*) % echo ${(t)foo} array when it should still say association, this is what caused _lastcomp to change type and break completion. Src/exec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Src/exec.c b/Src/exec.c index 007447d..2e996d4 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -2264,14 +2264,14 @@ addvars(Estate state, Wordcode pc, int addflags) state->pc = opc; return; } - if (!isstr || (isset(GLOBASSIGN) && + if (!isstr || (isset(GLOBASSIGN) && isstr && haswilds((char *)getdata(firstnode(vl)), 0))) { globlist(vl, 0); /* Unset the parameter to force it to be recreated * as either scalar or array depending on how many * matches were found for the glob. */ - if (isset(GLOBASSIGN)) + if (isset(GLOBASSIGN) && isstr) unsetparam(name); } if (errflag) { -- 2.4.0