From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18134 invoked from network); 10 Aug 2005 19:46:14 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 10 Aug 2005 19:46:14 -0000 Received: (qmail 85168 invoked from network); 10 Aug 2005 19:46:08 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 10 Aug 2005 19:46:08 -0000 Received: (qmail 16971 invoked by alias); 10 Aug 2005 19:46:06 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 21596 Received: (qmail 16961 invoked from network); 10 Aug 2005 19:46:06 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 10 Aug 2005 19:46:06 -0000 Received: (qmail 84883 invoked from network); 10 Aug 2005 19:46:06 -0000 Received: from smtp1.wanadoo.co.uk (HELO smtp1.freeserve.com) (193.252.22.158) by a.mx.sunsite.dk with SMTP; 10 Aug 2005 19:46:00 -0000 Received: from me-wanadoo.net (nullmx.catchamail.com [127.0.0.1]) by mwinf3006.me.freeserve.com (SMTP Server) with ESMTP id 197AD1C00084 for ; Wed, 10 Aug 2005 21:45:59 +0200 (CEST) Received: from pwstephenson.fsnet.co.uk (modem-3129.marahu.dialup.pol.co.uk [81.78.220.57]) by mwinf3006.me.freeserve.com (SMTP Server) with ESMTP id ED2731C00083 for ; Wed, 10 Aug 2005 21:45:57 +0200 (CEST) X-ME-UUID: 20050810194557971.ED2731C00083@mwinf3006.me.freeserve.com Received: by pwstephenson.fsnet.co.uk (Postfix, from userid 501) id B5F508664; Wed, 10 Aug 2005 15:53:54 -0400 (EDT) Received: from pwstephenson.fsnet.co.uk (localhost [127.0.0.1]) by pwstephenson.fsnet.co.uk (Postfix) with ESMTP id 6BFA88662 for ; Wed, 10 Aug 2005 20:53:54 +0100 (BST) To: zsh-workers@sunsite.dk (Zsh hackers list) Subject: PATCH: fix 3, was Re: unpatch: metafying zle line In-reply-to: <200508101319.j7ADJ6mx002062@news01.csr.com> References: <200508101034.j7AAYISV013947@news01.csr.com> <200508101157.j7ABvrck017869@news01.csr.com> <200508101319.j7ADJ6mx002062@news01.csr.com> Date: Wed, 10 Aug 2005 20:53:52 +0100 From: Peter Stephenson Message-Id: <20050810195354.B5F508664@pwstephenson.fsnet.co.uk> X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.0.4 Two more: which-command and run-help were broken because I forgot to copy the code that moves the cursor to the end, so the strings were inserted in the wrong order. Some more advanced menu features including accept-and-menu-complete were broken by yet another complication with the metafication state when using menus. Index: Src/Zle/compresult.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Zle/compresult.c,v retrieving revision 1.55 diff -u -r1.55 compresult.c --- Src/Zle/compresult.c 10 Aug 2005 10:56:41 -0000 1.55 +++ Src/Zle/compresult.c 10 Aug 2005 19:44:28 -0000 @@ -687,6 +687,8 @@ mod_export int hasbrpsfx(Cmatch m, char *pre, char *suf) { + METACHECK(); + if (m->flags & CMF_ALL) return 1; else { @@ -1153,6 +1155,15 @@ mod_export void do_menucmp(int lst) { + int was_meta; + + /* Already metafied when called from domenuselect already */ + if (zlemetaline == NULL) { + was_meta = 0; + metafy_line(); + } else + was_meta = 1; + /* Just list the matches if the list was requested. */ if (lst == COMP_LIST_COMPLETE) { showinglist = -2; @@ -1173,13 +1184,10 @@ (((*minfo.cur)->flags & (CMF_NOLIST | CMF_MULT)) && (!(*minfo.cur)->str || !*(*minfo.cur)->str))); /* ... and insert it into the command line. */ - /* Already metafied when called from domenuselect already */ - if (zlemetaline == NULL) { - metafy_line(); - do_single(*minfo.cur); + do_single(*minfo.cur); + + if (!was_meta) unmetafy_line(); - } else - do_single(*minfo.cur); } /**/ Index: Src/Zle/zle_tricky.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/Zle/zle_tricky.c,v retrieving revision 1.54 diff -u -r1.54 zle_tricky.c --- Src/Zle/zle_tricky.c 10 Aug 2005 10:56:41 -0000 1.54 +++ Src/Zle/zle_tricky.c 10 Aug 2005 19:44:51 -0000 @@ -1800,6 +1800,8 @@ ZS_strncpy(zleline + zlecs, zlestr, zlelen); free(zlestr); zsfree((char *)instr); + if (move) + zlecs += len; } return len; } -- Peter Stephenson Work: pws@csr.com Web: http://www.pwstephenson.fsnet.co.uk