diff options
author | Russ Cox <rsc@swtch.com> | 2021-01-05 23:38:09 -0500 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2021-01-05 23:38:09 -0500 |
commit | 1c845e0bd5ff897dc5e90f2c24db4ecd81a8f60c (patch) | |
tree | 5b4c0a3ba8784251a08dc46ed3a8f23e6b48cc60 /src/cmd/sam | |
parent | 0a513e65607223d11ba94003256b13ef5779e7e8 (diff) | |
download | plan9port-1c845e0bd5ff897dc5e90f2c24db4ecd81a8f60c.tar.gz plan9port-1c845e0bd5ff897dc5e90f2c24db4ecd81a8f60c.tar.bz2 plan9port-1c845e0bd5ff897dc5e90f2c24db4ecd81a8f60c.zip |
acme, sam, samterm: remove weird switch usage
For whatever reason all three of these programs
contain switches like:
switch(x) {
case 1:
if(cond)
case 2:
f();
}
Like Duff's device, this is legal C but more obscure
than it really needs to be.
This commit assumes those are intended as written
and simply writes them more clearly. I did consider
that maybe they are mistakes, but in the case of sam/regexp.c,
my rewrite in this commit matches the acme/regx.c that
has been in plan9port since I added acme in 2003.
(I didn't bother to dig up the old Plan 9 releases.)
Assuming acme/regx.c has been correct for the past
two decades, this commit should be correct too.
Diffstat (limited to 'src/cmd/sam')
-rw-r--r-- | src/cmd/sam/cmd.c | 6 | ||||
-rw-r--r-- | src/cmd/sam/regexp.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/cmd/sam/cmd.c b/src/cmd/sam/cmd.c index 7176a827..13bd17e0 100644 --- a/src/cmd/sam/cmd.c +++ b/src/cmd/sam/cmd.c @@ -559,9 +559,11 @@ simpleaddr(void) case '.': case '$': case '\'': - if(addr.type!='"') + if(addr.type=='"') + break; + /* fall through */ case '"': - error(Eaddress); + error(Eaddress); break; case 'l': case '#': diff --git a/src/cmd/sam/regexp.c b/src/cmd/sam/regexp.c index 2e369fe1..57c639d9 100644 --- a/src/cmd/sam/regexp.c +++ b/src/cmd/sam/regexp.c @@ -700,11 +700,11 @@ bexecute(File *f, Posn startp) break; case 1: /* expired; wrap to end */ if(sel.p[0].p1>=0) - case 3: goto Return; list[0][0].inst = list[1][0].inst = 0; p = f->b.nc; goto doloop; + case 3: default: goto Return; } |