Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
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,FREEMAIL_FROM
	autolearn=ham autolearn_force=no version=3.4.0
Subject: Re: [PATCH] _subscript: fix the completion of associative array keys
To: zsh-workers@zsh.org
References: <1453790967-23314-1-git-send-email-llua@gmx.com>
From: Eric Cook <llua@gmx.com>
Message-ID: <56A71DAE.6080100@gmx.com>
Date: Tue, 26 Jan 2016 02:18:06 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <1453790967-23314-1-git-send-email-llua@gmx.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:h9PJ4Zs98mRmVR2jpnGLXvhUVQ4WVSzxlWOoeKCJ2VkgUMgezUG
 bO5IF+m3jvyqnNZUrkR7oOpUbv3D341blETIE97DAdCmqMg7oeBO/ybufT+fAklLi4fRCx6
 00DFjY7zGXiKxudW/2+1ZDTFyPrZo03c1qCnQWBNLyumiLwTCC+wvRQvUEwBz6p8PXfj6Mt
 8c0PQ0quZci/azvaKL2EQ==
X-UI-Out-Filterresults: notjunk:1;V01:K0:belCslwGkSU=:SmQ86Z/HwtzfiamiBZ97I0
 jqNsztLXxRs0djCYO0BBbwdGjLnFwogcxQGDTJOnJJCPKqgD1ORa7WSehtjTCpMkQa69reZbO
 F5LkFT12ckjBX6kH9vZMx5GjTPCmOFe9mD4+69FwqeXY6zibq0SlHBLvPXWk7Sdnhg2G28qGi
 TT5ObdyxsbpORxYHOF0YtNSsTieF2wYi+fSngW8eG+BEU3QSut1wq8B+/0nOyWBq1KSEv5rQ9
 ppSvEIIbyfDVif4ssdvTTngmuf2hNvbVHsVT+v631U1hl9tIpu5XGBi/Q6i2HzgHRxet1mvR2
 xpwVlfPEAEKHdBxB1i/lrt+Q6ikvpw5ngLirLTTizGzMK3i4XTZP8N3nBKVrxi6Gf3c6R8Lcc
 JbF+UVToYhyTEi3Vy4+HzI7ZE0Lfq5Z5qYFsdkaqtEdaR/Q8MyTYZ3WLFruBEkTS9cjalU4am
 XLPoeKP11/QgpsrF/1J3x9JbHkqWn2XBEmPk7aBNyFuOqSy7JPMMrSEJS+iztS8U29NPp0Ygw
 KmfuPTwSjUGKsKIFGsCfwwhA1Gl/0C35Oquqcke+pQZql6dXyeDhLHzCHKqDcefnK80iHeFz4
 f0fhd4W2Fg6OFEAufGgf+oJHde+pe74p9YqC6Lgoe8Qn9lym5WXNi7IoRo6vPze1rz5kH+9Et
 Mehz3LhQrV2+mIxpXGJiWQXMPBsNHOty9tI9lLZPb66xdKnxgW/h3prhUCJ8jmrnUMusIoNvL
 +/80bcIqlZYQAQ85bbAkjtVU9Szj6+v5ycDePsRRQ6R0eAt2di2SWZM/lJGzi3HWfErTQ3T5e
 q67fftp
X-Seq: zsh-workers 37788

On 01/26/2016 01:49 AM, Eric Cook wrote:
> iirc the way ${(P)var} works was changed/"fix"(?) recently, but i can't find
> the thread now so i may be wrong. But currently: $options[<tab>
> completes values not the keys.

Now without empty argument removal: typeset -A foo; foo=('' bar) # is legal.
diff --git a/Completion/Zsh/Context/_subscript b/Completion/Zsh/Context/_subscript
index 0ccc0c4..679f129 100644
--- a/Completion/Zsh/Context/_subscript
+++ b/Completion/Zsh/Context/_subscript
@@ -81,8 +81,8 @@ elif compset -P '\('; then
 elif [[ ${(Pt)${compstate[parameter]}} = assoc* ]]; then
   local suf MATCH MBEGIN MEND
   local -a keys
-  keys=(${${(kP)compstate[parameter]}//(#m)[\$\\\[\]\(\)\[\{\}]/\\$MATCH})
-  keys=(${keys//#%(#m)[*@]/(e)$MATCH})
+  keys=("${(@)${(@k)${(P)compstate[parameter]}}//(#m)[\$\\\[\]\(\)\[\{\}]/\\$MATCH}")
+  keys=("${(@)keys//#%(#m)[*@]/(e)$MATCH}")
   [[ "$RBUFFER" != (|\\)\]* ]] && suf="$osuf"

   _wanted association-keys expl 'association key' \

