From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27173 invoked from network); 20 Mar 1997 16:39:23 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by coral.primenet.com.au with SMTP; 20 Mar 1997 16:39:23 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id LAA08706; Thu, 20 Mar 1997 11:22:26 -0500 (EST) Resent-Date: Thu, 20 Mar 1997 11:22:26 -0500 (EST) Date: Thu, 20 Mar 1997 16:25:01 GMT From: Zefram Message-Id: <303.199703201625@stone.dcs.warwick.ac.uk> Subject: autoload failing X-Patch: 215 Resent-Message-ID: <"9w0Iy2.0.z72.1HMCp"@euclid> To: zsh-workers@math.gatech.edu Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3010 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- This patch stops failed module autoloads being attempted again. This is particularly useful with the zle module: currently an autoload will be attempted every time the main prompt is reached while it is not loaded. -zefram *** Src/builtin.c 1997/03/17 14:23:38 1.62 --- Src/builtin.c 1997/03/20 13:04:52 *************** *** 60,65 **** --- 60,66 ---- #ifdef DYNAMIC if (!bn->handlerfunc) { zwarnnam(name, "autoload failed", NULL, 0); + deletebuiltin(bn->nam); return 1; } #endif *** Src/init.c 1997/03/19 00:21:09 1.41 --- Src/init.c 1997/03/20 13:13:33 *************** *** 790,796 **** --- 790,800 ---- ZleVoidFn gotwordptr = noop_function; ZleVoidFn refreshptr = noop_function; ZleVoidIntFn spaceinlineptr = noop_function_int; + # ifdef UNLINKED_XMOD_zle + ZleReadFn zlereadptr = autoload_zleread; + # else /* !UNLINKED_XMOD_zle */ ZleReadFn zlereadptr = fallback_zleread; + # endif /* !UNLINKED_XMOD_zle */ /**/ void *************** *** 806,811 **** --- 810,828 ---- /* do nothing */ } + # ifdef UNLINKED_XMOD_zle + + /**/ + unsigned char * + autoload_zleread(char *lp, char *rp) + { + zlereadptr = fallback_zleread; + load_module("zle"); + return zleread(lp, rp); + } + + # endif /* UNLINKED_XMOD_zle */ + /**/ unsigned char * fallback_zleread(char *lp, char *rp) *************** *** 813,822 **** char *pptbuf; int pptlen; - #ifdef UNLINKED_XMOD_zle - if (load_module("zle")) - return zleread(lp, rp); - #endif /* UNLINKED_XMOD_zle */ pptbuf = putprompt(lp, &pptlen, NULL, 1); write(2, (WRITE_ARG_2_T)pptbuf, pptlen); free(pptbuf); --- 830,835 ---- -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: ascii iQCVAwUBMzFDBXD/+HJTpU/hAQH8TgQAoDGAJ2caaTkuWDFGOj4csh2EtnikEdb+ J/m3u1cnDPhKYj1fK2PsteNjIFuaELBSFaftoCTANFdhfjYEu/ZkTitSQG3W8guv eFnUxZFaNWYPDAOxM0LyEwLndGuxJB4KgWw9I9aSl/ES+5nmxgyDJBdIWdkMBSbf OFdoHKoMDwI= =nXo9 -----END PGP SIGNATURE-----