From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9598 invoked by alias); 8 Jun 2018 06:27:21 -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: List-Unsubscribe: X-Seq: 42953 Received: (qmail 10589 invoked by uid 1010); 8 Jun 2018 06:27:20 -0000 X-Qmail-Scanner-Diagnostics: from au-smtp-delivery-203.mimecast.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(180.189.28.203):SA:0(-2.6/5.0):. Processed in 0.685426 secs); 08 Jun 2018 06:27:20 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: michael.milton@unimelb.edu.au X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unimelb.edu.au; s=mimecast20161020; t=1528439239; h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to:references; bh=H4XO8lQA7pVi+EI0MHHICkknpUuEzvBI0f77Ez8tc2s=; b=l5twdeqqJtsyXoXBnJ7rivT853CIHrWyf3d6brSf2DCXNnBvbw32YrSECpUjcLTVm+0sWppm3tWH1TODUTfBFiCDOgjpuWGbPhQaDB6fvSmUReiSF14aKGWx54RivnU3mDvnOvZAL5xwjstvK/Q8fIakB+IIxPFgMfdJzC4EKac= From: Michael Milton To: dana , "zsh-workers@zsh.org" Subject: Re: Implement an "array index" subscript flag Thread-Topic: Implement an "array index" subscript flag Thread-Index: AQHT/sf3IjRl2ZJMuUibbx4ORws0bKRV0hsAgAABFq6AAA9egIAAALkA Date: Fri, 8 Jun 2018 06:27:14 +0000 Message-ID: References: <075A01C0-8DA7-4D1B-8553-1C1C2B66D0F2@dana.is> , In-Reply-To: Accept-Language: en-AU, en-US Content-Language: en-AU X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [128.250.103.218] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SYXPR01MB0990;7:bcvfsL3BI3whNzvVZfIWKWPxpKHlNiLN0xrY4MGIH4lgGKWIWU+O2LRk1J/IxfmrGKEJrM3frqxy0cF859TzLYcjrlWkb9xqD060FvKsa6HSXi1gXYhtqmE0g5+zxddSOza5tfzdpY+LiEIgFxLHVbIUnNL7vdd+/kNwtJfVJBmuV1IS8MylfzEK0c+ohBrhSl61Hr7A/ixjBtPydyGkKq0HVCKY7p9buJgyA4do6laC9c7FZhFYaVTACdlnmghj;20:F1lV5ndqO+67tSDTqbERYwiJ1Z3ePD7HwxAM+p7zDxsiBG0mjlUMgF9KS9TVImwW7Ahv5DHfGipRbxy6ZN65MmMyl6c+WhVZtp/edXtv2cJFFrIUuvNw4XTxh/BwRStSOZ5h0Rt89vT4NBC5CTwZuVL+NM7UclDrEDGGmPW11Ic= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-microsoft-antispam: UriScan:(30117434726449)(38994716169672);BCL:0;PCL:0;RULEID:(7020095)(4652020)(8989080)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(8990040)(2017052603328)(7153060)(7193020);SRVR:SYXPR01MB0990; x-ms-traffictypediagnostic: SYXPR01MB0990: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(30117434726449)(38994716169672); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281529075)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);SRVR:SYXPR01MB0990;BCL:0;PCL:0;RULEID:;SRVR:SYXPR01MB0990; x-forefront-prvs: 06973FFAD3 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39380400002)(39860400002)(346002)(376002)(396003)(366004)(189003)(199004)(19627405001)(105586002)(2501003)(53936002)(54896002)(55016002)(9686003)(74482002)(25786009)(6246003)(6606003)(486006)(476003)(5660300001)(11346002)(86362001)(106356001)(5250100002)(229853002)(3846002)(68736007)(44832011)(81166006)(81156014)(316002)(786003)(93886005)(8676002)(88552002)(2906002)(99286004)(26005)(2900100001)(110136005)(446003)(8936002)(186003)(3280700002)(33656002)(6436002)(74316002)(6506007)(53546011)(6116002)(478600001)(97736004)(3660700001)(14454004)(66066001)(102836004)(7696005)(7736002)(76176011);DIR:OUT;SFP:1101;SCL:1;SRVR:SYXPR01MB0990;H:SYXPR01MB1069.ausprd01.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-microsoft-antispam-message-info: LiuyZx5dC99XvQdOBUbNBOKC53XY/Qhho8t/FSHSEcV3dgD2sZ9erPX/WeF5W4+Nsjjh32b2zl1UMzKjk5qZKs3pXcghb/VTGqCJ/1O++/MmEWDBnvX3P1I4tkza0EJOSYUgbLPJ7uxdPb2QwxbkAzRjwzhjncU8FCwH9kBSn7bB+jIhA3aD0omQJ0UqjWPb spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 84907825-1de5-431d-f290-08d5cd08e001 X-OriginatorOrg: unimelb.edu.au X-MS-Exchange-CrossTenant-Network-Message-Id: 84907825-1de5-431d-f290-08d5cd08e001 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2018 06:27:14.1537 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0e5bf3cf-1ff4-46b7-9176-52c538c22a4d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SYXPR01MB0990 X-MC-Unique: fqLrMv2nO8-tuiMwZbcRcg-1 Content-Type: multipart/alternative; boundary="_000_SYXPR01MB1069171E6F7EDBB7155252F7BA7B0SYXPR01MB1069ausp_" --_000_SYXPR01MB1069171E6F7EDBB7155252F7BA7B0SYXPR01MB1069ausp_ Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Ah thanks for clarifying that. I think we're all on the same page. I... tried to investigate this, but I've only got as far as finding the SCA= NPM_WANTKEYS constant, which seems relevant. Not really sure where the actu= al lookup is implemented. ________________________________ From: dana Sent: Friday, 8 June 2018 4:15:13 PM To: zsh-workers@zsh.org Cc: Michael Milton Subject: Re: Implement an "array index" subscript flag On 8 Jun 2018, at 00:46, Michael Milton wro= te: >This produces no output: >arr=3D([1]=3Da [2]=3Db) >keys=3D${arr[(k)@]} >echo $keys You're talking about the (k) subscript flag; i meant the (k) expansion flag= . See the hypothetical example in my earlier reply for how the latter works (just= use an association instead of an array). The former isn't relevant here (array indexes aren't useful as patterns anyway), but it works like this: % local -A assoc=3D( 'a*' val1 '*a' val2 ) % print ${assoc[(k)abc]} val1 % print ${assoc[(k)cba]} val2 If the (k) expansion flag were made to work on indexed arrays it would definitely not need to do any pattern matching. dana --_000_SYXPR01MB1069171E6F7EDBB7155252F7BA7B0SYXPR01MB1069ausp_--