From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 573 invoked from network); 1 Jul 1998 18:37:08 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 1 Jul 1998 18:37:08 -0000 Received: (from list@localhost) by math.gatech.edu (8.8.5/8.8.5) id OAA10988; Wed, 1 Jul 1998 14:20:48 -0400 (EDT) Resent-Date: Wed, 1 Jul 1998 14:20:48 -0400 (EDT) Sender: rz2a022@uni-hamburg.de Message-ID: <359A7E39.1ACBAC8A@uni-hamburg.de> Date: Wed, 01 Jul 1998 20:21:45 +0200 From: Bernd Eggink Organization: Regionales Rechenzentrum der Uni Hamburg X-Mailer: Mozilla 4.05 [en] (X11; I; Linux 2.0.33 i586) MIME-Version: 1.0 To: Zsh-workers Subject: Bug in select Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Resent-Message-ID: <"Axq693.0.ah2.0udcr"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/4192 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Zsh-3.1.4 has a bug in 'select': An empty user input is not treated correctly, due to a misconstructed do-loop (in do ... while(0) break and continue have the same effect). Here is a patch: --- loop.c.old Wed Jul 1 19:19:26 1998 +++ loop.c Wed Jul 1 19:28:28 1998 @@ -156,7 +156,7 @@ inp = fdopen(dup((SHTTY == -1) ? 0 : SHTTY), "r"); selectlist(args); for (;;) { - do { + for (;;) { if (empty(bufstack)) { if (interact && SHTTY != -1 && isset(USEZLE)) str = (char *)zleread(prompt3, NULL, 0); @@ -178,11 +178,10 @@ } if ((s = strchr(str, '\n'))) *s = '\0'; - if(!*str) { + if(*str) + break; selectlist(args); - continue; - } - } while(0); + }; setsparam("REPLY", ztrdup(str)); i = atoi(str); if (!i) -- Bernd Eggink Regionales Rechenzentrum der Uni Hamburg eggink@uni-hamburg.de http://www.rrz.uni-hamburg.de/eggink/BEggink.html