From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4857 invoked from network); 27 Feb 2005 20:44:26 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 27 Feb 2005 20:44:26 -0000 Received: (qmail 74591 invoked from network); 27 Feb 2005 20:44:19 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 27 Feb 2005 20:44:19 -0000 Received: (qmail 15456 invoked by alias); 27 Feb 2005 20:44:16 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 20882 Received: (qmail 15442 invoked from network); 27 Feb 2005 20:44:16 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 27 Feb 2005 20:44:16 -0000 Received: (qmail 74343 invoked from network); 27 Feb 2005 20:44:16 -0000 Received: from vms044pub.verizon.net (206.46.252.44) by a.mx.sunsite.dk with SMTP; 27 Feb 2005 20:44:11 -0000 Received: from candle.brasslantern.com ([4.11.1.68]) by vms044.mailsrvcs.net (Sun Java System Messaging Server 6.2 HotFix 0.04 (built Dec 24 2004)) with ESMTPA id <0ICL004N889LYG10@vms044.mailsrvcs.net> for zsh-workers@sunsite.dk; Sun, 27 Feb 2005 14:44:10 -0600 (CST) Received: from candle.brasslantern.com (IDENT:schaefer@localhost [127.0.0.1]) by candle.brasslantern.com (8.12.11/8.12.11) with ESMTP id j1RKi8TY019299 for ; Sun, 27 Feb 2005 12:44:08 -0800 Received: (from schaefer@localhost) by candle.brasslantern.com (8.12.11/8.12.11/Submit) id j1RKi8A0019298 for zsh-workers@sunsite.dk; Sun, 27 Feb 2005 12:44:08 -0800 Date: Sun, 27 Feb 2005 20:44:07 +0000 From: Bart Schaefer Subject: PATCH: Apply spell correction to autocd To: zsh-workers@sunsite.dk Message-id: <1050227204407.ZM19297@candle.brasslantern.com> MIME-version: 1.0 X-Mailer: Z-Mail (5.0.0 30July97) Content-type: text/plain; charset=us-ascii X-Spam-Checker-Version: SpamAssassin 3.0.2 on a.mx.sunsite.dk X-Spam-Level: X-Spam-Status: No, score=-2.6 required=6.0 tests=BAYES_00 autolearn=ham version=3.0.2 X-Spam-Hits: -2.6 I don't know whether this is going to require tweaking for wide-char file names, but it's at least as good as the current bin_cd() implementation. Index: Src/utils.c =================================================================== RCS file: /extra/cvsroot/zsh/zsh-4.0/Src/utils.c,v retrieving revision 1.21 diff -c -r1.21 utils.c --- Src/utils.c 18 Feb 2005 17:05:17 -0000 1.21 +++ Src/utils.c 27 Feb 2005 20:35:06 -0000 @@ -1652,6 +1664,7 @@ char ic = '\0'; int ne; int preflen = 0; + int autocd = cmd && isset(AUTOCD) && strcmp(*s, ".") && strcmp(*s, ".."); if ((histdone & HISTFLAG_NOEXEC) || **s == '-' || **s == '%') return; @@ -1720,6 +1733,19 @@ if (!*t && cmd) { if (hashcmd(guess, pathchecked)) return; + if (autocd) { + char **pp, *g = guess; + for (pp = cdpath; *pp; pp++) { + char *buf = zhtricat(*pp, "/", *s); + spckword(&buf, 0, 0, 0); + if (best && strcmp(best, guess)) { + best = buf + strlen(*pp) + 1; + break; + } else if (u != g) + best = u; + } + guess = g; + } d = 100; scanhashtable(reswdtab, 1, 0, 0, spscan, 0); scanhashtable(aliastab, 1, 0, 0, spscan, 0); -- 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