Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Suggested "case" syntax extension
- X-seq: zsh-users 278
- From: segal@xxxxxxxxxx (Morris M. Siegel)
- To: Zoltan Hidvegi <hzoli@xxxxxxxxxx>
- Subject: Re: Suggested "case" syntax extension
- Date: Tue, 9 Jul 1996 16:09:07 -0400
- Cc: zsh-users@xxxxxxxxxxxxxxx
- In-reply-to: Zoltan Hidvegi <hzoli@xxxxxxxxxx> "Re: Suggested "case" syntax extension" (Jul 9, 2:33am)
- References: <199607090033.CAA11237@xxxxxxxxxxxxxxxxx>
On Jul 9, 2:33am, Zoltan Hidvegi wrote:
> Subject: Re: Suggested "case" syntax extension
> > Newer versions of ksh allow an optional '(' before each pattern in a case
> > statement, complementary to the mandatory ')' following the pattern. As
> > well as being esthetically symmetric, this also facilitates verifying that
> > a shell script has balanced parentheses (e.g. with the '%' command in vi).
> >
> > It seems that zsh still recognizes only the classic Bourne shell syntax for
> > "case", with the ')' but no optional '('. Considering all the syntactic
> > variation zsh supports, it would be quite reasonable for zsh to allow a
> > leading '(', thereby enhancing compatibility with ksh scripts. Although
> > I have not looked into the zsh source, I imagine this should not pose an
> > implementation problem.
>
> Zsh accepts an optional leading '(' since 2.6-beta21. POSIX 1003.2
> requires this. It also allows us to use case sttement in $(...) command
> substitutions (of course even a normal case should work in a command
> substitution but the zsh implementation requires ballanced parentheses like
> bash and pdksh).
>
> Zsh is not completely ksh compatible here since due to the enhanced glob
> pattern syntax recognized by zsh if there is a leading '(' the closing ')'
> must be delimited with a blank from the command following that. So
>
> case foo in
> (f*)echo yes;;
> (*)echo no;;
> esac
>
> does not work in zsh but
>
> case foo in
> (f*) echo yes;;
> (*) echo no;;
> esac
>
> works.
>
> Zoltan
>-- End of excerpt from Zoltan Hidvegi
______________________________________
I'm glad to learn this has already been implemented. (The last time I tried it
was with 2.6-beta20, I believe.) However, I double-checked in the zsh-3.0-pre2
distribution, and both man/man1/zshmisc.1 and Doc/zshmisc.man lack any mention
of an optional leading '('. This should be fairly easy to remedy.
-- Morrie Siegel
Messages sorted by:
Reverse Date,
Date,
Thread,
Author