From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3805 invoked by alias); 7 Dec 2014 16:27:34 -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: 33904 Received: (qmail 22212 invoked from network); 7 Dec 2014 16:27:31 -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-Originating-IP: [86.6.25.230] X-Spam: 0 X-Authority: v=2.1 cv=S8BXwecP c=1 sm=1 tr=0 a=c0CwWhpM9oUd/BnC3z6Gzg==:117 a=c0CwWhpM9oUd/BnC3z6Gzg==:17 a=NLZqzBF-AAAA:8 a=kj9zAlcOel0A:10 a=q2GGsy2AAAAA:8 a=mUYpccs-2ctDluzOumsA:9 a=CjuIK1q_8ugA:10 Date: Sun, 7 Dec 2014 16:21:57 +0000 From: Peter Stephenson To: "Zsh Hackers' List" Subject: Re: Interrupting globs (Re: Something rotten in tar completion) Message-ID: <20141207162157.27cf418f@pws-pc.ntlworld.com> In-Reply-To: <141206215911.ZM16010@torch.brasslantern.com> 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> <20141205145054.655a2f70@pwslap01u.europe.root.pri> <141205100632.ZM508@torch.brasslantern.com> <20141205181330.2b458b46@pwslap01u.europe.root.pri> <20141205203417.2bc66b7b@pws-pc.ntlworld.com> <141206215911.ZM16010@torch.brasslantern.com> X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.7; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sat, 06 Dec 2014 21:59:11 -0800 Bart Schaefer wrote: > No, I'd forgotten the exact circumstances. However, as I mentioned in > another part of the thread, there's something I missed as well, which > is that if you ^C all the way out of _main_complete, some interesting > (if not always important) bits of state don't get restored. > > If we stick with the TRAPINT(), then we need this ... > > diff --git a/Completion/Base/Core/_main_complete b/Completion/Base/Core/_main_complete > index 91b68fe..bc63e83 100644 > --- a/Completion/Base/Core/_main_complete > +++ b/Completion/Base/Core/_main_complete > @@ -129,7 +129,7 @@ _completer_num=1 > # We assume localtraps to be in effect here ... > integer SECONDS=0 > TRAPINT TRAPQUIT() { > - zle -M "Killed by signal in ${funcstack[1]} after ${SECONDS}s"; > + zle -M "Killed by signal in ${funcstack[2]} after ${SECONDS}s"; > zle -R > return 130 > } That's probably the way to go --- my gut feel is the behaviour of the other form of trap is too far from what we need to make it a good starting point. I'll get onto the discussion about internal changes separately. Rather than replying to everything separately, I might try to summarise what I think we've learnt so far and you can tell me what's missing... pws