From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16147 invoked from network); 28 Feb 1997 11:21:03 -0000 Received: from euclid.skiles.gatech.edu (root@130.207.146.50) by coral.primenet.com.au with SMTP; 28 Feb 1997 11:21:03 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id FAA04485; Fri, 28 Feb 1997 05:15:01 -0500 (EST) Resent-Date: Fri, 28 Feb 1997 05:15:01 -0500 (EST) Message-Id: <199702281017.LAA13329@hydra.ifh.de> To: zsh-workers@math.gatech.edu (Zsh hackers list) Subject: Re: compctl-related core dump In-reply-to: "Xris Laas"'s message of "Thu, 27 Feb 1997 21:54:51 MET." <199702271653.VAA07297@lator.cybercom.net> Date: Fri, 28 Feb 1997 11:17:21 +0100 From: Peter Stephenson Resent-Message-ID: <"Og2Cs1.0.z51.a0h5p"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/2942 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Xris Laas wrote: > On 27 Feb, John Harres wrote: > > While working on another odd command's compctl, I got a core dump out of > > 3.0.2. First, the compctl: > > > > compctl -x 's[-]' -k '(logical physical server database contents object > as > > type dependencies from stripe incremental stripe replace copyover merge > > no_replace no_index indexfile sql_insert charset audits no_audits no_data > > data_only merge no_segments on_segment cache no_cache on_index_segment > > on_text_segment interfaces user password sybasedump masterinfo bcp_batch_si > ze > > db_refs dryrun code verbose no_prompt no_status quiet debug)' - \ > > 'c[-1,from][-1,stripe][-1.indexfile][-1,interfaces][-1,sybasedump][-1,maste > rinf > > o]' -f -- dtsload > > The problem isn't that there's nothing defined for that case. The > problem is merely compctl syntax in the line: > > > 'c[-1,from][-1,stripe][-1.indexfile][-1,interfaces][-1,sybasedump][-1,maste > rinf > ^^^^^^^^^^^^^^ > Change that to "[-1,indexfile]" . The test in zsh is insufficient when the incorrect condition has another bracketed expression after it: it finds the next comma after and doesn't realise it's gone too far. This fixes it (for 3.1.1, it will apply to 3.0.x if you can find the file with get_xcompctl() in it). *** Src/Zle/compctl.c.bug Sun Jan 5 22:07:31 1997 --- Src/Zle/compctl.c Fri Feb 28 11:11:14 1997 *************** *** 598,605 **** c->u.l.b[l] = ztrdup(tt); } else { /* remaining patterns are number followed by string */ ! for (; *t && *t != '\201'; t++); ! if (!*t) { zwarnnam(name, "error in condition", NULL, 0); freecompcond(m); return 1; --- 598,605 ---- c->u.l.b[l] = ztrdup(tt); } else { /* remaining patterns are number followed by string */ ! for (; *t && *t != '\200' && *t != '\201'; t++); ! if (!*t || *t == '\200') { zwarnnam(name, "error in condition", NULL, 0); freecompcond(m); return 1; -- Peter Stephenson Tel: +49 33762 77366 WWW: http://www.ifh.de/~pws/ Fax: +49 33762 77413 Deutsches Elektronen-Synchrotron --- Institut fuer Hochenergiephysik Zeuthen DESY-IfH, 15735 Zeuthen, Germany.