From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1763 invoked from network); 22 Jun 2000 09:35:39 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 22 Jun 2000 09:35:39 -0000 Received: (qmail 9533 invoked by alias); 22 Jun 2000 09:35:08 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12031 Received: (qmail 9426 invoked from network); 22 Jun 2000 09:34:46 -0000 From: "Bart Schaefer" Message-Id: <1000622093436.ZM32264@candle.brasslantern.com> Date: Thu, 22 Jun 2000 09:34:36 +0000 In-Reply-To: Comments: In reply to Chmouel Boudjnah "Permissions directories" (Jun 21, 6:04pm) References: X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.auc.dk Subject: Re: Permissions directories MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jun 21, 6:04pm, Chmouel Boudjnah wrote: } Subject: Permissions directories } } Is there any reason why now the directories in $fpath need to be 755 } and not 775 or 777 ? Put the following in a file in your $fpath, using a name that starts with an underscore: --- 8< --- cut here --- 8< --- #compdef -p * _message -r Gotcha! --- 8< --- cut here --- 8< --- Do you really want just anyone to be able to drop files into directories that compinit searches for completion definitions? This is not so much a problem since compinit is also checking ownership of the files in those directories. I think it's got the test wrong for the .zwc files, though -- e.g. if the parent of a directory in $fpath is writable, I believe under the current tests I could still create a trojan .zwc file there that would be used in place of the directory of the same basename. While I'm on the subject, though, I've been finding a number of problems with the new compinit. For one thing, the test (( $+functions[$_i_name] + $_i_wfiles[(I)$_i_file] )) && continue is a nice idea, but it doesn't work in practice -- the test can't be for whether the *function* is already defined, it has to be a test for whether it has already been defined *by compinit*. I don't want the test to fail if *I've* already explicitly autoloaded a name, I only want it not to parse the #compdef lines from files of the same name out of two different directories. I think we need a local assoc or array for this, not the $functions parameter. The other problem is that when I answer "y" to the question "there are insecure directories -- proceed?" I expected that to mean that it would USE those directories, not ignore them. If it's going to skip those directories anyway, why bother to ask the question? Giving me a choice between no directories and half of them is no choice at all; it just leaves me with a partly-working completion system, which is baffling. -- 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