From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24848 invoked by alias); 27 Jan 2017 16:24:54 -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: 40428 Received: (qmail 14900 invoked from network); 27 Jan 2017 16:24:54 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.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(210.118.77.12):SA:0(-8.2/5.0):. Processed in 1.382941 secs); 27 Jan 2017 16:24:54 -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=-8.2 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7f1-f793f6d000007796-19-588b744bdba8 Date: Fri, 27 Jan 2017 16:24:40 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: PATH: autoload with explicit path Message-id: <20170127162440.10a5c85b@pwslap01u.europe.root.pri> In-reply-to: <1485529979.987251.861563792.06CCDCAC@webmail.messagingengine.com> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djP87reJd0RBidXmFscbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujG1trxgL1nFXbDr1kr2BcR1nFyMnh4SAicTp/dtYIGwxiQv3 1rN1MXJxCAksZZS4cOY3K4TTyyTRNnUvE0zH+gX3wWwhgWWMEg3TNCCKpjFJHDx7hxHC2cQo 0Xz4GpRzllFi5ZLpbCAtLAKqEvtXrgKz2QQMJaZums0IYosIiEucXXse7BBhAT2JH18/gNm8 AvYSR57PA6vnFPCX+NZzAmw1v4C+xNW/n6BOspeYeeUMI0S9oMSPyffAepkFdCS2bXvMDmHL S2xe85YZ5CAJge9sEg+aO4EaOIAcWYlNB5gh5rhI7Lq+nhXCFpZ4dXwLO4QtI9HZcRBqVz+j xJNuX4g5MxglTp/ZwQaRsJbou32REWIZn8SkbdOZIebzSnS0CUGUeEg0rrgMNdNRYvnuC0wT GBVnITl7FpKzZyE5ewEj8ypGkdTS4tz01GIjveLE3OLSvHS95PzcTYzARHD63/GPOxjfn7A6 xCjAwajEw3shsztCiDWxrLgy9xCjBAezkghvfT5QiDclsbIqtSg/vqg0J7X4EKM0B4uSOO+e BVfChQTSE0tSs1NTC1KLYLJMHJxSDYwcH1jfrZ1wdp9y/Oqgi6nrPdgPbgwMNDBP5rvG+H9p 4ILa1g2iOWHcBzWTF8z4LWNp7l/8z9GycOGuM/tP6K078E1K4Gr5ivTGd7lX5fWm9BkenN09 qUkisMo50Mjl74p9ud0c07KXx3S2Fpu75aWxeR/seSnfc16k+ZSsUEpXnnangt7MyUosxRmJ hlrMRcWJADvZuuAAAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRmVeSWpSXmKPExsVy+t/xy7o9Jd0RBm3PJS0ONj9kcmD0WHXw A1MAY5SbTUZqYkpqkUJqXnJ+SmZeuq1SaIibroWSQl5ibqqtUoSub0iQkkJZYk4pkGdkgAYc nAPcg5X07RLcMra1vWIsWMddsenUS/YGxnWcXYycHBICJhLrF9xngrDFJC7cW8/WxcjFISSw hFHi8Z5tzBDODCaJjZ3XoJxNjBIvPj9kh3DOMkr8mdfFAtLPIqAqsX/lKjYQm03AUGLqptmM ILaIgLjE2bXnwWqEBfQkfnz9AGbzCthLHHk+D6yeU8Bf4lvPCSa43Z+2vWQGSfAL6Etc/fsJ 6kB7iZlXzjBCNAtK/Jh8D2wQs4CWxOZtTawQtrzE5jVvwXqFBNQlbtzdzT6BUXgWkpZZSFpm IWlZwMi8ilEktbQ4Nz232FCvODG3uDQvXS85P3cTIzCSth37uXkH46WNwYcYBTgYlXh4NXK6 I4RYE8uKK3MPMUpwMCuJ8NbnA4V4UxIrq1KL8uOLSnNSiw8xmgJDZiKzlGhyPjDK80riDU0M zS0NjYwtLMyNjJTEeUs+XAkXEkhPLEnNTk0tSC2C6WPi4JRqYIx1YW+zXc0eetZQPtP3c4/a w/Trlyx9eBLjeL6WJ53f+HlLRaH4D/0dckJ3Cs9p+ZUJlKQevjr/rRGr34E1U6vfWYq/2x77 VERRaYLoh4dK9/5O3jI7tDnszvzr6hvf3WUwT+PtKIjUPK7aJ36/YrXRIaGmq+XFil120d2J 0RJFz6r0TqpyKLEUZyQaajEXFScCALRL4s+6AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170127162443eucas1p21ef2275a158072e39091f908d59570c0 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170127151334epcas2p4c32b57f69fcae22b40b309793eb8ceb6 X-RootMTR: 20170127151334epcas2p4c32b57f69fcae22b40b309793eb8ceb6 References: <1485529979.987251.861563792.06CCDCAC@webmail.messagingengine.com> On Fri, 27 Jan 2017 07:12:59 -0800 Sebastian Gniazdowski wrote: > I do the non-fpath autoloading by local FPATH parameter. There's > drawback: if autoloaded function does further autoloading of other > function, then the earlier supplied local FPATH parameter isn't active > anymore. > > So it's not possible to have /home/user/functions/{fun1,fun2}, autoload > fun1, and have fun2 available for fun1. Now, with the new feature, > directory path can be attached to function and if it calls autoload > itself, then the attached directory can be examined before FPATH. You're worried about something like this? # set up function local path_that_only_appears_here=/foo/bar autoload -Uz $path_that_only_appears_here/fun1 # definition of fun1 autoload -Uz /fun2 fun2 You can already do this using funcsourcetrace from zsh/parameter: ${funcsourcetrace[1]%%:<->} is the source file for the immediately enclosing scope, so take the directory part of that and you've got what you want (being careful if you happen to have evals or anonymous functions which generate their own scopes). It's a bit limiting you can't get that information for any function, since it's alrady available internally in the shfunc structure. I'd be happy to add an associative array in zsh/parameter parallel to $functions, say $function_sources, that gives the information for all functions. pws