From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16318 invoked by alias); 6 Dec 2014 21:50:11 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 33887 Received: (qmail 3628 invoked from network); 6 Dec 2014 21:50:10 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=MJ3XQ3dg c=1 sm=1 tr=0 a=FT8er97JFeGWzr5TCOCO5w==:117 a=kj9zAlcOel0A:10 a=q2GGsy2AAAAA:8 a=oR5dmqMzAAAA:8 a=-9mUelKeXuEA:10 a=A92cGCtB03wA:10 a=w1ErwvYLaTyshxMnyCIA:9 a=CjuIK1q_8ugA:10 From: Bart Schaefer Message-id: <141206135015.ZM2285@torch.brasslantern.com> Date: Sat, 06 Dec 2014 13:50:15 -0800 In-reply-to: Comments: In reply to Jeremie Roquet "Re: Interrupting globs (Re: Something rotten in tar completion)" (Dec 5, 3:17pm) References: <20141202155452.647182b4@pwslap01u.europe.root.pri> <141202084858.ZM31517@torch.brasslantern.com> <20141202172654.30e7d380@pwslap01u.europe.root.pri> <141204085606.ZM9146@torch.brasslantern.com> <20141204171226.301e9d2c@pwslap01u.europe.root.pri> <141205002023.ZM19736@torch.brasslantern.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: "Zsh Hackers' List" Subject: Re: Interrupting globs (Re: Something rotten in tar completion) MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Dec 5, 3:17pm, Jeremie Roquet wrote: } Subject: Re: Interrupting globs (Re: Something rotten in tar completion) } } > - if (!q) } > + if (!q || errflag) } } I've no Idea if the expansion of something like "ls /a/b/c" to } "ls /aaaaa/bbbbbb/cccccc/" is related to this code, but it seems to } have zero impact there: I'm still unable to interrupt the horribly } slow expansion using ctrl+c. Do you have a matcher-list zstyle? In the "trap ... INT" formulation of the trap in _main_complete, the loop that retries each of the completers for every element of the matcher-list does not get interrupted by ^C, even though the pass that is in progress when you interrupt does stop. This means you have to hit ^C at least once for every matcher, and maybe also once for every completer that does something time-consuming. The formulation using TRAPINT() blows all the way out of _main_complete, which certainly stops the completion at that point but also screws up all sorts of cleanup that _main_complete would normally do, such as setting up _lastcomp, and restoring the values of ZLS_COLORS and the _comppostfuncs array.