From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21619 invoked by alias); 16 Dec 2014 16:45:43 -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: 33979 Received: (qmail 3515 invoked from network); 16 Dec 2014 16:45:30 -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=Ko/6AtSI 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=2uGQ81CrMJjXA2yMC74A:9 a=CjuIK1q_8ugA:10 From: Bart Schaefer Message-id: <141216084537.ZM18852@torch.brasslantern.com> Date: Tue, 16 Dec 2014 08:45:37 -0800 In-reply-to: <6B615901-83A3-41A0-9017-3EFA7EF5CA42@kba.biglobe.ne.jp> Comments: In reply to "Jun T." "accept-and-hold in interactive mode of menu select" (Dec 16, 11:18pm) References: <6B615901-83A3-41A0-9017-3EFA7EF5CA42@kba.biglobe.ne.jp> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-workers@zsh.org Subject: Re: accept-and-hold in interactive mode of menu select MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Dec 16, 11:18pm, Jun T. wrote: } } >>> type ab } } % ls test/ab } interactive: test/abb[] } abbb* abbc } } >>> hit ^L } } % ls test/ab test/abbc } abbb abbc* } } Note that the 1st word on the command line is not updated to test/abbb. I'm not entirely sure that's wrong; accept means to accept what is on the command line, not to accept what is highlighted in the menu. You have to finish the action of choosing one of the menu items so that the command line is updated, before you accept. On the other hand I can see where there might be confusion about that, and this is a little-used and therefore little-tested corner of complist, so implicitly choosing the currently highlighted item (even though in this situation it will always be whichever one came first in sort order) may be a reasonable thing to do. } >>> type ab } } % ls test/{ab } interactive: test/{abb[] } abbb* abbc } } >>> hit ^L } } then zsh goes into an infinite loop; ^C does not work. I'm not able to reproduce this with a completion that does not use a brace expansion, so I wonder if there's something about that which is involved. Brace expansion has always been a bit of a problem child, and in a brace expansion you're accepting a partial completion rather than an entire command-line "word", so we try to re-enter selection in a different state. } I tried the patch below, and it does avoid the infinite loop. But it } is far from sufficient; for example, the ^L above now gives (as I } expect) } } % ls test/{abbb,abbc } } but if I hit ^K to go to the interactive mode again, then I get } } % ls test/{ab Entering interactive mode always returns to the original state of the command line before menu-selection was started. I don't remember why this is the case, or if it was intentional. -- Barton E. Schaefer