zsh-users
 help / color / mirror / code / Atom feed
* Bug in case stmt with '('
@ 1996-07-17 21:01 Morris M. Siegel
  1996-07-18 18:27 ` Bart Schaefer
  0 siblings, 1 reply; 17+ messages in thread
From: Morris M. Siegel @ 1996-07-17 21:01 UTC (permalink / raw)
  To: zsh-users

It seems that when a pattern in a case statement is preceded by the optional
'(', the parser is in the wrong state when parsing the statement following
the pattern.  In particular, an assignment such as 'var=value' is not
recognized; instead, zsh complains 'command not found: var=value'.

This problem exists in zsh-3.0-pre1 and -pre3 (I never built -pre2),
and it seems that -pre3 behaves even worse than -pre1:  the following
console listing (lines 63-65) shows that "zsh3p3 case3let.ksh"
induces the message "segmentation fault (core dumped)"!
(As far as I can tell, I built -pre1 and -pre3 the same way.)
Moreover (lines 73-75, with zsh-3.0-pre3 as the interactive shell),
". case3let.ksh" not only results in the message
	"case3let.ksh: command not found: gigo=case '(v)' [2]"
but the interpreter then apparently falls through to the next branch of
the case statement rather than exiting the case statement.  (This falling
through is also done by -pre1 but is not shown in the listing below.)

 1  $(0) 15:38:50 [39] head case*
 2  ==> case2let.ksh <==
 3  case v in
 4  #(v)    gigo="case '(v)'"
 5  #       echo $gigo;;
 6  v)      gigo="case 'v)'"
 7          echo $gigo;;
 8  *)      gigo="case '*)'"
 9          echo $gigo;;
10  esac
11
12  ==> case3let.ksh <==
13  case v in
14  (v)     gigo="case '(v)'"
15          echo $gigo;;
16  v)      gigo="case 'v)'"
17          echo $gigo;;
18  *)      gigo="case '*)'"
19          echo $gigo;;
20  esac
21  $(0) 15:38:55 [40] sh case2let.ksh # try Bourne shell
22  case 'v)'
23  $(0) 15:39:16 [41] r 2l=3l
24  sh case3let.ksh # try Bourne shell
25  case3let.ksh: syntax error at line 2: `(' unexpected
26  zsh: 10255 exit 2     sh case3let.ksh
27  $(2) 15:39:27 [42] ksh case2let.ksh # try Korn shell
28  case 'v)'
29  $(0) 15:39:46 [43] r 2l=3l
30  ksh case3let.ksh # try Korn shell
31  case '(v)'
32  $(0) 15:39:52 [44] zsh25 case2let.ksh # try 2.5.03
33  case 'v)'
34  $(0) 15:41:11 [45] r 2l=3l
35  zsh25 case3let.ksh # try 2.5.03
36  case3let.ksh: parse error near `gigo="case '(v)'"' [2]
37  case3let.ksh: parse error near `;;' [3]
38  case3let.ksh: parse error near `)' [4]
39  case3let.ksh: parse error near `;;' [5]
40  case3let.ksh: parse error near `)' [6]
41  case3let.ksh: parse error near `;;' [7]
42  case3let.ksh: parse error near `esac' [8]
43  $(0) 15:41:16 [46] zsh26 case2let.ksh # try 2.6-beta20
44  case 'v)'
45  $(0) 15:41:56 [47] r 2l=3l
46  zsh26 case3let.ksh # try 2.6-beta20
47  case3let.ksh: parse error near `gigo="case '(v)'"' [2]
48  case3let.ksh: parse error near `;;' [3]
49  case3let.ksh: parse error near `)' [4]
50  case3let.ksh: parse error near `;;' [5]
51  case3let.ksh: parse error near `)' [6]
52  case3let.ksh: parse error near `;;' [7]
53  case3let.ksh: parse error near `esac' [8]
54  $(0) 15:42:06 [48] zsh3p1 case2let.ksh # try zsh-3.0-pre1
55  case 'v)'
56  $(0) 15:42:45 [49] r 2l=3l
57  zsh3p1 case3let.ksh # try zsh-3.0-pre1
58  case3let.ksh: command not found: gigo=case '(v)' [2]
59
60  $(0) 15:42:50 [50] zsh3p3 case2let.ksh # try zsh-3.0-pre3
61  case 'v)'
62  $(0) 15:43:11 [51] r 2l=3l
63  zsh3p3 case3let.ksh # try zsh-3.0-pre3
64  case3let.ksh: command not found: gigo=case '(v)' [2]
65  zsh: 10287 segmentation fault (core dumped)  zsh3p3 case3let.ksh
66  $(139) 15:43:16 [52] ls -sailF core
67  937892978377 8377 -rw-r--r--  1 segal     8577456 Jul 17 15:43 core
68  $(0) 15:43:29 [53] echo $ZSH_VERSION
69  3.0-pre3
70  $(0) 15:43:41 [54] . case2let.ksh
71  case 'v)'
72  $(0) 15:43:50 [55] r 2l=3l
73  . case3let.ksh
74  case3let.ksh: command not found: gigo=case '(v)' [2]
75  case 'v)'
76  $(0) 15:44:01 [56]



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~1996-07-24 16:14 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-07-17 21:01 Bug in case stmt with '(' Morris M. Siegel
1996-07-18 18:27 ` Bart Schaefer
1996-07-18 23:43   ` Zoltan Hidvegi
1996-07-19  2:23     ` Bart Schaefer
1996-07-19 16:00       ` Zoltan Hidvegi
1996-07-21 22:53         ` Morris M. Siegel
1996-07-22  6:31           ` Bart Schaefer
     [not found]             ` <schaefer@candle.brasslantern.com>
1996-07-22 19:26               ` Morris M. Siegel
1996-07-22 19:51                 ` Zoltan Hidvegi
1996-07-22 20:48                   ` Morris M. Siegel
1996-07-22 21:27                     ` Zefram
1996-07-22 21:56                       ` Morris M. Siegel
1996-07-22 21:51                     ` Bart Schaefer
1996-07-22 21:23                   ` Zefram
1996-07-22 22:31               ` Morris M. Siegel
1996-07-22 23:37                 ` Bart Schaefer
1996-07-24 16:07     ` Morrie is off for July 25 Morris M. Siegel

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).