From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19977 invoked from network); 10 Feb 1997 07:29:37 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by coral.primenet.com.au with SMTP; 10 Feb 1997 07:29:37 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id CAA07730; Mon, 10 Feb 1997 02:19:14 -0500 (EST) Resent-Date: Mon, 10 Feb 1997 02:19:14 -0500 (EST) From: "Bart Schaefer" Message-Id: <970209232631.ZM8676@candle.brasslantern.com> Date: Sun, 9 Feb 1997 23:26:31 -0800 Reply-To: schaefer@nbn.com X-Mailer: Z-Mail (4.0b.820 20aug96) To: zsh-workers@math.gatech.edu Subject: Minor bug in ALWAYS_LAST_PROMPT MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Resent-Message-ID: <"zkURh3.0.ju1.oli_o"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/2885 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Actually, the bug is when it's *unset*. If unset, key functions that list completions try to return to the last prompt if given a numeric argument. If set, these functions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ try to return to the last prompt if given no numeric argument. Given a numeric argument of 1, the listing functions behave as if they were not given any argument at all. You have to give a numeric argument of 0 or 2,3,... to get the documented behavior. Simple patch follows. --- zsh-3.0.3-test4/Src/zle_main.c Fri Jan 31 21:24:08 1997 +++ zsh-3.0.3-test4-work/Src/zle_main.c Sun Feb 9 23:22:07 1997 @@ -1110,8 +1110,8 @@ return; trashzle(); clearflag = (isset(USEZLE) && termok && - (isset(ALWAYSLASTPROMPT) && zmult == 1)) || - (unset(ALWAYSLASTPROMPT) && zmult != 1); + (isset(ALWAYSLASTPROMPT) && !gotmult)) || + (unset(ALWAYSLASTPROMPT) && gotmult); printbind(keybuf, (len = strlen(keybuf)) ? len : 1, 0); fprintf(shout, " is "); if (cmd == z_sendstring) { @@ -1157,8 +1157,8 @@ funcfound = 0; trashzle(); clearflag = (isset(USEZLE) && termok && - (isset(ALWAYSLASTPROMPT) && zmult == 1)) || - (unset(ALWAYSLASTPROMPT) && zmult != 1); + (isset(ALWAYSLASTPROMPT) && !gotmult)) || + (unset(ALWAYSLASTPROMPT) && gotmult); if (func == z_selfinsert || func == z_undefinedkey) fprintf(shout, "%s is on many keys", zlecmds[func].name); else { --- zsh-3.0.3-test4/Src/zle_tricky.c Fri Jan 31 21:24:09 1997 +++ zsh-3.0.3-test4-work/Src/zle_tricky.c Sun Feb 9 23:22:38 1997 @@ -2144,8 +2144,8 @@ trashzle(); clearflag = (isset(USEZLE) && termok && - (isset(ALWAYSLASTPROMPT) && zmult == 1)) || - (unset(ALWAYSLASTPROMPT) && zmult != 1); + (isset(ALWAYSLASTPROMPT) && !gotmult)) || + (unset(ALWAYSLASTPROMPT) && gotmult); up = printfmt(expl, nmatches, 1); @@ -3516,8 +3516,8 @@ showinglist = 0; clearflag = (isset(USEZLE) && termok && - (isset(ALWAYSLASTPROMPT) && zmult == 1)) || - (unset(ALWAYSLASTPROMPT) && zmult != 1); + (isset(ALWAYSLASTPROMPT) && !gotmult)) || + (unset(ALWAYSLASTPROMPT) && gotmult); arr = amatches; -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.nbn.com/people/lantern