From e3618518fde961fc283bffceeb804e63d45c84ce Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Wed, 1 Mar 2000 10:36:20 +0000 Subject: zsh-workers/9948 --- Src/exec.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index df42bad32..f242ab7aa 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3413,15 +3413,9 @@ stripkshdef(Eprog prog, char *name) return NULL; code = *pc++; if (wc_code(code) != WC_LIST || - (WC_LIST_TYPE(code) & (Z_SYNC|Z_END)) != (Z_SYNC|Z_END)) - return prog; - code = *pc++; - if (wc_code(code) != WC_SUBLIST || - WC_SUBLIST_FLAGS(code) || WC_SUBLIST_TYPE(code) != WC_SUBLIST_END) - return prog; - code = *pc++; - if (wc_code(code) != WC_PIPE || WC_PIPE_TYPE(code) != WC_PIPE_END) + (WC_LIST_TYPE(code) & (Z_SYNC|Z_END|Z_SIMPLE)) != (Z_SYNC|Z_END|Z_SIMPLE)) return prog; + pc++; code = *pc++; if (wc_code(code) != WC_FUNCDEF || *pc != 1 || strcmp(name, ecrawstr(prog, pc + 1, NULL))) @@ -3450,6 +3444,7 @@ stripkshdef(Eprog prog, char *name) ret->alloc = EA_HEAP; ret->pats = pp = (Patprog *) zhalloc(len); ret->prog = (Wordcode) (ret->pats + npats); + ret->strs = (char *) (ret->prog + nprg); memcpy(ret->prog, pc, plen); memcpy(ret->strs, prog->strs + sbeg, nstrs); ret->dump = NULL; @@ -3458,7 +3453,6 @@ stripkshdef(Eprog prog, char *name) ret->npats = npats; for (i = npats; i--; pp++) *pp = dummy_patprog1; - ret->strs = (char *) (ret->prog + nprg); ret->shf = NULL; return ret; -- cgit 1.4.1