From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12072 invoked by alias); 12 Sep 2014 21:57:27 -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: 33151 Received: (qmail 29592 invoked from network); 12 Sep 2014 21:57:26 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) 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 autolearn=ham version=3.3.2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=QdGBtznTZSZub0GDVqNEGf8B3Xhu04cl+wdnLdc0rLc=; b=Pt9tVkK2R6ZSX/3+HyK1iUfHOOJB0ASa+Wf2tsggS+Y3VfgAtlHK6/mSEzTKwcTgxN 4Q3s4sCt3m7w7C1u3Btknhwt55ZxwY/KWiSx3Vd2B6wfzv/FLDm+6PN2eLtc3gTXmo6C sb13ZnwcBSRi0ySwLpU+EVk2NfShfx/e/GThTrlJBEL5ADR/qFYrLu3uR5N5oesAzNA6 8gkx5fFIUXIhTFsoBzlZAw5p+zr/ga+sm/S+dejW6G96aXkbB2CFyajmDSJF00VicXpB 8U88fAZlc6/LSLMNDSs/j1yy7tn3Wg9WLLvOy/GUkL/Ao7/zDSRXY9rlsrbOE00rBzwc GjGA== X-Received: by 10.194.90.233 with SMTP id bz9mr14791559wjb.94.1410557576044; Fri, 12 Sep 2014 14:32:56 -0700 (PDT) From: Marc Finet To: zsh-workers@zsh.org Cc: Marc Finet Subject: [PATCH 2/9] completion git: support aliases when \n exist Date: Fri, 12 Sep 2014 23:30:36 +0200 Message-Id: <1410557443-24178-3-git-send-email-m.dreadlock@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1410557443-24178-1-git-send-email-m.dreadlock@gmail.com> References: <1410557443-24178-1-git-send-email-m.dreadlock@gmail.com> The git completion for aliases (i.e. completing with aliased verb) was broken whem some \n exist in aliases. --- Completion/Unix/Command/_git | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index b1f411a..d941aac 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -6560,9 +6560,13 @@ _git() { if (( CURRENT > 2 )); then local -a aliases local -A git_aliases - # TODO: Should use -z here, but I couldn't get it to work. - aliases=(${(f)${${${(f)"$(_call_program aliases git config --get-regexp '\^alias\.')"}#alias.}/ /$'\n'}/(#e)/$'\n'}) - (( $#aliases % 2 == 0 )) && git_aliases=($aliases) + local k v + aliases=(${(0)"$(_call_program aliases git config -z --get-regexp '\^alias\.')"}) + for a in ${aliases}; do + k="${${a/$'\n'*}/alias.}" + v="${a#*$'\n'}" + git_aliases[$k]="$v" + done if (( $+git_aliases[$words[2]] && !$+commands[git-$words[2]] && !$+functions[_git-$words[2]] )); then local -a tmpwords expalias -- 2.1.0