From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9834 invoked from network); 1 Oct 1999 19:09:56 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 1 Oct 1999 19:09:56 -0000 Received: (qmail 11045 invoked by alias); 1 Oct 1999 19:09:51 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8122 Received: (qmail 11035 invoked from network); 1 Oct 1999 19:09:49 -0000 From: Paul Kimoto Date: Fri, 1 Oct 1999 15:09:37 -0400 To: Bart Schaefer Cc: zsh-workers@sunsite.auc.dk Subject: Re: command-spelling correction strangeness Message-ID: <19991001150937.A8296@perdita.antigonus.net> References: <19990928235656.A22062@perdita.antigonus.net> <990929053943.ZM22102@candle.brasslantern.com> <19990929020225.A21607@adore.lightlink.com> <991001021154.ZM25595@candle.brasslantern.com> <19990930232303.A5982@perdita.antigonus.net> <991001040228.ZM25695@candle.brasslantern.com> <19991001002659.A3777@adore.lightlink.com> <991001163203.ZM28059@candle.brasslantern.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre3i In-Reply-To: <991001163203.ZM28059@candle.brasslantern.com> On Fri, Oct 01, 1999 at 04:32:03PM +0000, Bart Schaefer wrote: > OK, the real scoop: My diagnosis was correct as far as it went, but I > missed one detail, which is that even when hashcmds is set it's possible > for `pathchecked' (zsh's internal pointer to how much of the path it has > searched) to already have advanced beyond the directory containing the > actual command. In that case resuming the check where it left off is not > sufficient. > > Zsh's internal Cmdnam structure holds a pointer to the spot in the path > where the command was found, so it's possible to restart the search from > there, and I actually had that implemented for a bit; but it occurred to > me that the reason the command can't be executed might be because it was > moved to another place in the path, in which event the search ought to be > started over from the beginning. This works because hashing of a single > command does a test for executable-non-directory-ness, whereas hashing an > entire directory simply stuffs every entry into the table. (So the whole > problem can be avoided in the first place by "unsetopt hashdirs".) > > This goes on top of the previous patch. [patch snipped] The combination of this and the patch in <990929053943.ZM22102@candle.brasslantern.com> (from 29 Sep 1999) does the job for me. -Paul