From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28635 invoked from network); 23 Mar 2001 18:17:50 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 23 Mar 2001 18:17:50 -0000 Received: (qmail 25646 invoked by alias); 23 Mar 2001 18:17:41 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 13736 Received: (qmail 25635 invoked from network); 23 Mar 2001 18:17:41 -0000 From: "Bart Schaefer" Message-Id: <1010323181647.ZM23628@candle.brasslantern.com> Date: Fri, 23 Mar 2001 18:16:47 +0000 X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.dk Subject: PATCH: Assorted fixes to 01grammar.ztst MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Index: Test/01grammar.ztst =================================================================== --- Test/01grammar.ztst 2000/06/17 17:27:17 1.4 +++ Test/01grammar.ztst 2001/03/23 18:13:10 @@ -41,9 +41,7 @@ 0:Basic subshell list with error >false -# Can someone convince me the following is really supposed to fail -# without the semicolon present? - { cd /NonExistentDirectory >&/dev/null; } || print false + { cd /NonExistentDirectory >&/dev/null } || print false 0:Basic current shell list with error >false @@ -235,17 +233,13 @@ # Tests for `Alternate Forms For Complex Commands' # -## I simply can't get these to work. -## I suspect that the lists which are allowed here are only syntactically -## special tests. -# if true; { print true-1; } elif true; { print true-2; } else { false; } -# if false; { print true-1; } elif true; { print true-2; } else { false; } -# if false; { print true-1; } elif false; { print true-2; } else { false; } -#0:Alternate `if' with braces -## Are all those semicolons necessary? If not, what are the rules? -#>true-1 -#>true-2 -#>false + if (true) { print true-1 } elif (true) { print true-2 } else { print false } + if (false) { print true-1 } elif (true) { print true-2 } else { print false } + if (false) { print true-1 } elif (false) { print true-2 } else { print false } +0:Alternate `if' with braces +>true-1 +>true-2 +>false if true; print true 0:Short form of `if' @@ -295,15 +289,25 @@ >Hip hip hooray >Hip hip hooray -## Why doesn't this one work here? It works from the command line -## or with zsh -fc. -# case bravo { -# (alpha) print schmalpha -# ;; -# (bravo) print schmavo -# ;; -# (charlie) print schmarlie -# ;; -# } -#0:`case' with braces -#>schmavo +# Why doesn't this one work here? It works from the command line +# or with zsh -fc. + case bravo { + (alpha) print schmalpha + ;; + (bravo) print schmavo + ;; + (charlie) print schmarlie + ;; + } +0:`case' with braces +>schmavo + + print 'This test hangs the shell when it fails...' >&8 + name=0 +# The number 4375 here is chosen to produce more than 16384 bytes of output + while (( name < 4375 )); do + print -n $name + (( name++ )) + done < /dev/null | { read name; print done } +0:Bug regression: `while' loop with redirection and pipeline +>done -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net