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.1 (2015-04-28) 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.1
From: Eric Cook <llua@gmx.com>
To: zsh-workers@zsh.org
Subject: [PATCH] compdump: only autoload functions in fpath
Date: Thu, 26 May 2016 10:17:23 -0400
Message-Id: <1464272243-28784-1-git-send-email-llua@gmx.com>
X-Mailer: git-send-email 2.8.2
X-Provags-ID: V03:K0:f7I8sq1Swd39+rN/Po+jlbkNBgaZgbgv1Xu/COkhd3vMPxKz1iG
 fdvomXo9QTFZ3lohT9BB6jlvDQhUJwz+z/YqnVQwmKOQNI6x7c6bI1lHBqmEU8P50Xt3BZ7
 HI162UW4DJiRbcZiUor6WROkUUvTUiP0pNxsoPgvRhaQswxbEVqeVJ+lUq0f8yHsbKolb7q
 k4C5uOBeXAHqFvhPV0eFg==
X-UI-Out-Filterresults: notjunk:1;V01:K0:j40cgJOaH8g=:QqoohCSRWaPkDxiUdaNZwS
 WQAAVrvpAE56NtQqYS2BsOT07J+BIaI7/TwJ8Xm4tpCqb3V66LntuqLWz8Hv1aBY7LcNFDVdi
 8RQYyrPkFCccA52CFOuYoc1fejlCXPdfcAxc1AeiYd4SLItQ5YNoxJs5kG5c8jqqLkwRgTyj1
 WKeUAm08dWcVeFE4Tn3zhTHyoapZKnaE9z3oNrk/x556XGkxFsLp/zUrqqGBag4KIsWJKag37
 c2cpBsZFTmCBQoWH2XU6SST+PYddjBg50x399KCFUsN+wBHRawiH5CNQhmmLEvc9GR/6ZRkaY
 xXnt9M7PwXfiknZLro+pCODRblCXrLLu5mZNVEIy1qOUJZkmGcjd7lOO2hOzNkVC0SJro959q
 +cHbk+yT/ie7lEJaN+1f/RLxLWIg1OTl8/B24lGAb6DJ1EzNezOs6udfhCM09hfY4/P1dgxH0
 +KisKUbB0cY0a0Hqp9cQQAsDuUgA31bod7eAkxvHOXTYHsZALoCythiLHTokzOjd9MAWbyo/H
 zPLzcLHRWFG0ooH0GC6Vfe98fs3XjQMsAdWIr//UupvhBXWXZqLa6gg6LED6h2ntyfkTPbNbx
 Tg2gVkyER0Iq8C3nsBFgk32bSK08srHJpmvYSXzK9ieK/JHEl/YXrKp4fQ8uxLRx3x0yuMWW+
 buACZ8oZf6FFPTxlnZmvx4PShW7609XwGrFrleciu9FR5xUwg4BjxxiBGoYrbYgxbBSYs7P/r
 bcR8VAWIuUsc4ltG2aK+jnKuYiRyl0+jZEUMAdusS/Vdlzv9HTi12JGY0D2VekEWTB06eX9h0
 lcukDYJgI614MmKZ2zzy/+OTJJuHQ==
X-Seq: zsh-workers 38547

When a user uses compdump after helper functions by completers are
defined. compdump will mark those functions for autoloading also.

This was noticed by a user who calls compinit multiple times, atleast once
after .zcompdump was deleted during the session then attempting to use
_vim.

You can reproduce the issue with:
1. vim <tab>
2. rm -f ~/.zcompdump; compinit # compdump executes during this
3. zsh
4. vim <tab>

Since compdump() does have a small mention in zshcompsys(1) about possibly
using it without compinit [1], it should probably be fixed.

[1] which should only be used once.
---
 Completion/compdump | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Completion/compdump b/Completion/compdump
index 068383c..619e39e 100644
--- a/Completion/compdump
+++ b/Completion/compdump
@@ -101,9 +101,9 @@ bindkey |
 print >> $_d_file
 
 
-# Autoloads: look for all functions beginning with `_'.
+# Autoloads: look for all functions in fpath beginning with `_'.
 
-_d_als=(${(o)$(typeset +fm '_*')})
+_d_als=($^fpath/(${(o~j.|.)$(typeset +fm '_*')})(N:t))
 
 # print them out:  about five to a line looks neat
 
-- 
2.6.6

