From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15589 invoked from network); 31 May 2021 21:38:17 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 31 May 2021 21:38:17 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1622497097; b=riynqCxuHd3teFlaqkIiztVnroUWpPpW+ujVjgLjL6GoIOr76U2x/yGj0Pyp96sh60G5fSDngB 3prxegCxRAmuNrP2/lJFaLxhzlILpgHQQKdWgkqZzXQ12EsPxgKoLMnSrarQB4Dronao1blM6X q8EcT99f0NrCwGtIXGQGlbXcD52tqLD2fLVmFGLxlDPCgKyD7AZucHbgAJtPRNSy7pAbSvKmo7 76C+mowYyYLSyIpzxDBGfkaaOTGsS6tSAwDVaU0qc5WGTIFkiQMToD9luhBmE+2vi8ZC+kNTsc GsBM2+9z5Qa4rkryztlFEPLAE1mBNU6/EzXzNChed1dNuw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-oi1-f181.google.com) smtp.remote-ip=209.85.167.181; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1622497097; bh=9uM2gudJv5BJlUiz3N+U8gI868m6YJUm7EpIOhVnCJ4=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=ntieygXJxLTB9AnPfUcYSL3ZyByrV83lJtPbsHFCqSePFxgAVO+SANAj5FeDosUK3D7sHSgP2H XuRmPTEyNyH1qJht93ufVWCA1HedTFPbNSs9KXTEM7AxmIvpb4FihtGdXxHvuzBNL3vsrP1FP3 Zt3C+e4NumB9AZ67udoD+2yAE+Y4AzNhynfsQ74ChsmRznp8PQTV3zjKEbBNc4wqvM0loitZMP +ykFckVTAgwnA0aJEBZZCS5BmhIA4LmR+c6ZdKz/Op9SEUx9C2c7z5A0dCVdymn3sYtkjo+o18 n90ruF/0MlQnjeDNM4pnVmSr9xPdBptCq9XKIGYQE9udtA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=1BPp+cmQSUZtpahHi5vrkQ5asvVNBp/uwRILgGn3LwE=; b=KINnw/RPIlGhw5VfUVCVZqG/Ld tzGBMpL1zjU6OJgw435I7qCrV24EB1aKBzJlSAu5kJXv1jfDHAZyIxTvAM23wdUB22t1IMa2DMe5m +GhRtbd6j6jqBDtt8cNUBxKCLtSAXid+04+JRBGhrjTbPKa64dFWNovqNpMrkwGG1nwGED6ptKP8E +ACwoLb1vkQW2MFbg+HSJS21YThBLhjITYqvWHD2dTZr4jcJjRU0gXeIOBWSSZeCBDg81mndvMQVA SxoLTgYwE/lTWJxSVgsKnWI48LzJ3GTpf0LCT/rOg9xGCVn8NFDk35mo5Re7bvnuNoG2cHh1tOule OxrmKiQg==; Received: from authenticated user by zero.zsh.org with local id 1lnpc0-0004kG-LT; Mon, 31 May 2021 21:38:16 +0000 Authentication-Results: zsh.org; iprev=pass (mail-oi1-f181.google.com) smtp.remote-ip=209.85.167.181; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-oi1-f181.google.com ([209.85.167.181]:36693) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lnpbT-0004Qx-Mp; Mon, 31 May 2021 21:37:44 +0000 Received: by mail-oi1-f181.google.com with SMTP id a21so2620323oiw.3 for ; Mon, 31 May 2021 14:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=1BPp+cmQSUZtpahHi5vrkQ5asvVNBp/uwRILgGn3LwE=; b=FEX1tk0BIlG0Ug285CRk25ak5at6T9E7FLTB/12MFZqQXeNQlkN6g2zdff6vpQnVOs TLeftKmd56GZaDmdJ81LPYXuUJDLbYBWavMylPbbmX7HjyzJRjDLwI6pCoQMJ/3pW/tW oGZojFBVkoMX2bBnbCtcmsUiruvA1WbA14qs0YHLlRN8UN9VuinwOwROQIFCjXdXVfaF eX7kqIIkbOsdLF8FNRW30ZhuCgQeEmX9gJR/M1l3nCL4MEuDDCvOu2z89EMIBh4Fb+tj nZ/Z/1uTQaBId6+Pl7AuNJv6RGtPzMYqTy101BPevQeMA0psmIWXC8YqVJzId+PMjF1m Bx4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=1BPp+cmQSUZtpahHi5vrkQ5asvVNBp/uwRILgGn3LwE=; b=gioubwsH3XqmMbYeuPsNOvRlrCZFx7mPIjnM7CSumJKmIHlZNIj8lgdjBRR95D/zQT wH8yjNeu4Qn7qO252KIqZ3riPw/Kq8dzJvjJAcGHpvS2iOubMZdOVe1+zSsRXL4GrQZP VMT/lazXylyI/ZrjG7s1qnmOAAZLhMWsc14UpCfhFwsrWBUJrZDqCWqmZv3qqZA7HBB+ 1YDsCSHXV5p8EmF1c5JHGxF4cX1Po9u2DVyZ33zlW64fWjp+AuRtVQIB37C3YmtEIRFr AMc91X9WjDu2WXJclEgvTEFZWL5ZiNGzhdmFUf4FlFKqYB4lV62qoyMPObXUChmHr6mT zLHg== X-Gm-Message-State: AOAM532VKf8+76O3G98F66i+xR8j0FYvZBkPvhd8m1DhUk5hYbT0Uo+y IgCsoaT8dL2dpfYmrAa7yWgooWIQQ1c1uqBYxMFy3d6vyJfNOA== X-Google-Smtp-Source: ABdhPJxT/ZsDANi+t3MrDruiFW/GgJHm5/y4gw1BUfVRY5k6G3K6LtStEZpwsE2WtACOPCKuQ0W74WvPzZtZFBLPYxs= X-Received: by 2002:aca:5cc2:: with SMTP id q185mr304430oib.173.1622497062037; Mon, 31 May 2021 14:37:42 -0700 (PDT) MIME-Version: 1.0 References: <20191216211013.6opkv5sy4wvp3yn2@chaz.gmail.com> <20191216212706.i3xvf6hn5h3jwkjh@chaz.gmail.com> <20191217073846.4usg2hnsk66bhqvl@chaz.gmail.com> <20191217111113.z242f4g6sx7xdwru@chaz.gmail.com> <2ea6feb3-a686-4d83-ab27-6a582424487c@www.fastmail.com> <20200101140343.qwfx2xaojumuds3d@chaz.gmail.com> <20210430061117.buyhdhky5crqjrf2@chazelas.org> <20210505114521.bemoiekpophssbug@chazelas.org> In-Reply-To: From: Bart Schaefer Date: Mon, 31 May 2021 14:37:31 -0700 Message-ID: Subject: [PATCH] (?) typeset array[position=index]=value To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" X-Seq: 48972 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: On Mon, May 31, 2021 at 11:18 AM Bart Schaefer wrote: > > On Wed, May 5, 2021 at 4:45 AM Stephane Chazelas wrote: > > [typeset] chokes on lvalue='array[n=1]' or > > lvalue='assoc[keywith=characters]' > > Hmm, I wonder if that should be considered a bug. This copies (tweaked for context) the code from parse.c at line 2006 or thereabouts. All tests still pass, but as you can see from the comment this is not yet handling x+=y which there doesn't seem to be any reason for typeset NOT to support; I think it would require only another flag in struct asgment, but I haven't attempted that. Commentary? diff --git a/Src/builtin.c b/Src/builtin.c index a16fddcb7..148c56952 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -1933,10 +1933,11 @@ getasg(char ***argvp, LinkList assigns) asg.flags = 0; /* search for `=' */ - for (; *s && *s != '='; s++); + for (; *s && *s != '[' && *s != '=' /* && *s != '+' */; s++); + if (s > asg.name && *s == '[') skipparens('[', ']', &s); /* found `=', so return with a value */ - if (*s) { + if (*s && *s == '=') { *s = '\0'; asg.value.scalar = s + 1; } else {