zsh-workers
 help / color / mirror / code / Atom feed
From: "Bart Schaefer" <schaefer@candle.brasslantern.com>
To: zsh-workers@sunsite.dk
Subject: Re: Moving completion functions
Date: Mon, 19 Mar 2001 04:36:01 +0000	[thread overview]
Message-ID: <1010319043601.ZM13312@candle.brasslantern.com> (raw)
In-Reply-To: <3AB534CA.AAFF8D96@u.genie.co.uk>

On Mar 18, 10:20pm, Oliver Kiddle wrote:
} Subject: Re: Moving completion functions
}
} Bart wrote:
} > Aliasing is not the only reason for making compinit a function.
} 
} More user's would understand what they are doing when told to source a
} file than the autoloading. And, it would avoid the zsh always setting
} fpath stuff that I mentioned my dislike for before.

What exactly would you like fpath to contain by default?  Nothing?

The current scheme doesn't set fpath just to get the Completion functions;
it also sets it to get the stuff from the Functions subdirectory, etc.

If we remove the Completion directories from the default fpath, then we
must also give up --enable-function-subdirs.  Not that we can't use the
subdirs for installation, but that we must hardwire the installation so
that compinit can know what to add to fpath.  Even then, compinit needs
to get the base path (to which to append /Completion/...) from somewhere.

Either that, or compinit needs to become a manufactured file, built from
a .in that can substitute the necessary fpath from configure.  I don't
find that a particularly exciting prospect.

Issues of setting fpath aside, the following patch makes it possible to
source compinit.  (Not committed yet, pending further discussion.)  One
thing that bothers me a bit is that the (ARGC=0) test will give the wrong
result if compinit is sourced from within some other function; as far as
I can tell, there's no completely reliable way to determine that "source"
(or ".") is in progress.

Index: Completion/Core/compinit
===================================================================
RCS file: /extra/cvsroot/zsh/zsh-3.1/Completion/Core/compinit,v
retrieving revision 1.75
diff -c -r1.75 compinit
--- Completion/Core/compinit	2001/03/19 02:32:16	1.75
+++ Completion/Core/compinit	2001/03/19 04:13:16
@@ -65,6 +65,8 @@
 # queried for whether to use or ignore the insecure directories (which
 # means compinit should not be called from non-interactive shells).
 
+compinit() {
+
 emulate -L zsh
 setopt extendedglob
 
@@ -481,3 +483,11 @@
 autoload -U compinit compaudit
 
 return 0
+
+}
+
+# Find out if this file is being read with "source" or ".", or called as
+# an autoloaded function, and re-call as appropriate.
+
+local -i ARGC	# Harmless if sourced, removes readonly if autoloaded.
+{ (ARGC=0) 2>/dev/null && [[ -o kshautoload ]] } || compinit "$@"


-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   


  reply	other threads:[~2001-03-19  4:38 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-18 22:20 Oliver Kiddle
2001-03-19  4:36 ` Bart Schaefer [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-03-30 14:00 Sven Wischnowsky
2001-03-30 15:12 ` Bart Schaefer
2001-03-29  9:33 Sven Wischnowsky
2001-03-29 16:49 ` Bart Schaefer
2001-03-28 14:12 Sven Wischnowsky
2001-03-28 16:14 ` Bart Schaefer
2001-03-28 16:20   ` Peter Stephenson
2001-03-26 14:16 Sven Wischnowsky
2001-03-26  8:53 Sven Wischnowsky
2001-03-22 21:46 Oliver Kiddle
2001-03-22 21:50 ` Oliver Kiddle
2001-03-23  0:29 ` Bart Schaefer
2001-03-25 15:26   ` Oliver Kiddle
2001-03-25 20:39     ` Peter Stephenson
2001-03-26  4:33     ` Bart Schaefer
2001-03-22 10:40 Sven Wischnowsky
2001-03-22 11:03 ` Peter Stephenson
2001-03-22 17:04 ` Bart Schaefer
2001-03-21 11:42 Sven Wischnowsky
2001-03-20 21:32 Oliver Kiddle
2001-03-21  9:58 ` Bart Schaefer
2001-03-19  9:46 Sven Wischnowsky
2001-03-22  7:21 ` Bart Schaefer
2001-03-16 17:27 Oliver Kiddle
2001-03-16 10:20 Sven Wischnowsky
2001-03-18  2:39 ` Bart Schaefer
2001-03-15 20:50 Oliver Kiddle
2001-03-16 12:09 ` Peter Stephenson
2001-03-17 23:16 ` Bart Schaefer
2001-03-15 15:46 Oliver Kiddle
2001-03-15 18:14 ` Bart Schaefer
2001-03-15 10:43 Sven Wischnowsky
2001-03-15  9:30 Sven Wischnowsky
2001-03-15 10:33 ` Peter Stephenson
2001-03-15 17:04 ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1010319043601.ZM13312@candle.brasslantern.com \
    --to=schaefer@candle.brasslantern.com \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).