From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28932 invoked by alias); 7 Dec 2014 05:59:08 -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: 33901 Received: (qmail 23913 invoked from network); 7 Dec 2014 05:59:07 -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=AKpDk7pY 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=CDkewtXSSdUwHMwXQE4A:9 a=kKjguIbP7lUObKFq:21 a=joOnh_jfYAZ2E-Pz:21 a=CjuIK1q_8ugA:10 From: Bart Schaefer Message-id: <141206215911.ZM16010@torch.brasslantern.com> Date: Sat, 06 Dec 2014 21:59:11 -0800 In-reply-to: <20141205203417.2bc66b7b@pws-pc.ntlworld.com> Comments: In reply to Peter Stephenson "Re: Interrupting globs (Re: Something rotten in tar completion)" (Dec 5, 8:34pm) 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> 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 (Note, two competing patches herein, do not apply both.) On Dec 5, 8:34pm, Peter Stephenson wrote: } } The trap goes back to zsh-workers/32322 (it got modified later but that } was largely cosmetic). The rationale there, it appears, was it was } making difficulties in interrupting easier to test (by displaying the } message, I presume) --- not that it was fixing anything. So as far as I } can see the underlying complaint was the same as mine, to return the } shell to the point where I get control of the command line as soon as } possible. Am I missing something? 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 } ... and we also need an always-block or something to cover cleanup, which may mean rearranging other parts of _main_complete. Or we could do this, which stops the matcher-list and completer loops (and any tag loops or the like that are also in play) and then does the rest of _main_complete as usual: diff --git a/Completion/Base/Core/_main_complete b/Completion/Base/Core/_main_complete index 91b68fe..5c4e368 100644 --- a/Completion/Base/Core/_main_complete +++ b/Completion/Base/Core/_main_complete @@ -126,13 +126,14 @@ fi _completer_num=1 -# We assume localtraps to be in effect here ... -integer SECONDS=0 -TRAPINT TRAPQUIT() { +# We assume localtraps and no_localloops to be in effect here ... +float SECONDS=0 +trap ' zle -M "Killed by signal in ${funcstack[1]} after ${SECONDS}s"; zle -R + repeat 1 break 10000 # break out of any reasonable number of loops return 130 -} +' INT QUIT # Call the pre-functions.