diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-19 17:35:54 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 2000-01-19 17:35:54 +0000 |
commit | 31a13a8931c6d662327440edc152eb03da466c45 (patch) | |
tree | 1ed98311d11981e291651359802d6b9fd282fcf8 /Src/cond.c | |
parent | 377fde4b22ad2ba1cf260a41a22fd4a6c9d9cbdb (diff) | |
download | zsh-31a13a8931c6d662327440edc152eb03da466c45.tar.gz zsh-31a13a8931c6d662327440edc152eb03da466c45.tar.xz zsh-31a13a8931c6d662327440edc152eb03da466c45.zip |
zsh-workers/9367
Diffstat (limited to 'Src/cond.c')
-rw-r--r-- | Src/cond.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Src/cond.c b/Src/cond.c index 4a78bd5e7..1df5b5617 100644 --- a/Src/cond.c +++ b/Src/cond.c @@ -43,7 +43,8 @@ evalcond(Estate state) { struct stat *st; char *left, *right = NULL; - wordcode code = *state->pc++; + Wordcode pcode = state->pc++; + wordcode code = *pcode; int ctype = WC_COND_TYPE(code); switch (ctype) { @@ -57,7 +58,7 @@ evalcond(Estate state) fprintf(stderr, " %s", condstr[ctype]); return evalcond(state); } else { - state->pc += WC_COND_SKIP(code) - 1; + state->pc = pcode + (WC_COND_SKIP(code) + 1); return 0; } case COND_OR: @@ -66,7 +67,7 @@ evalcond(Estate state) fprintf(stderr, " %s", condstr[ctype]); return evalcond(state); } else { - state->pc += WC_COND_SKIP(code) - 1; + state->pc = pcode + (WC_COND_SKIP(code) + 1); return 1; } case COND_MOD: |