mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-26 18:01:03 +02:00
zsh-workers/9948
This commit is contained in:
parent
137c94144c
commit
e3618518fd
2 changed files with 4 additions and 10 deletions
12
Src/exec.c
12
Src/exec.c
|
@ -3413,15 +3413,9 @@ stripkshdef(Eprog prog, char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
code = *pc++;
|
code = *pc++;
|
||||||
if (wc_code(code) != WC_LIST ||
|
if (wc_code(code) != WC_LIST ||
|
||||||
(WC_LIST_TYPE(code) & (Z_SYNC|Z_END)) != (Z_SYNC|Z_END))
|
(WC_LIST_TYPE(code) & (Z_SYNC|Z_END|Z_SIMPLE)) != (Z_SYNC|Z_END|Z_SIMPLE))
|
||||||
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)
|
|
||||||
return prog;
|
return prog;
|
||||||
|
pc++;
|
||||||
code = *pc++;
|
code = *pc++;
|
||||||
if (wc_code(code) != WC_FUNCDEF ||
|
if (wc_code(code) != WC_FUNCDEF ||
|
||||||
*pc != 1 || strcmp(name, ecrawstr(prog, pc + 1, NULL)))
|
*pc != 1 || strcmp(name, ecrawstr(prog, pc + 1, NULL)))
|
||||||
|
@ -3450,6 +3444,7 @@ stripkshdef(Eprog prog, char *name)
|
||||||
ret->alloc = EA_HEAP;
|
ret->alloc = EA_HEAP;
|
||||||
ret->pats = pp = (Patprog *) zhalloc(len);
|
ret->pats = pp = (Patprog *) zhalloc(len);
|
||||||
ret->prog = (Wordcode) (ret->pats + npats);
|
ret->prog = (Wordcode) (ret->pats + npats);
|
||||||
|
ret->strs = (char *) (ret->prog + nprg);
|
||||||
memcpy(ret->prog, pc, plen);
|
memcpy(ret->prog, pc, plen);
|
||||||
memcpy(ret->strs, prog->strs + sbeg, nstrs);
|
memcpy(ret->strs, prog->strs + sbeg, nstrs);
|
||||||
ret->dump = NULL;
|
ret->dump = NULL;
|
||||||
|
@ -3458,7 +3453,6 @@ stripkshdef(Eprog prog, char *name)
|
||||||
ret->npats = npats;
|
ret->npats = npats;
|
||||||
for (i = npats; i--; pp++)
|
for (i = npats; i--; pp++)
|
||||||
*pp = dummy_patprog1;
|
*pp = dummy_patprog1;
|
||||||
ret->strs = (char *) (ret->prog + nprg);
|
|
||||||
ret->shf = NULL;
|
ret->shf = NULL;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -2619,7 +2619,7 @@ try_dump_file(char *dump, char *name, char *func)
|
||||||
|
|
||||||
prog = (Eprog) zalloc(sizeof(*prog));
|
prog = (Eprog) zalloc(sizeof(*prog));
|
||||||
|
|
||||||
prog->alloc = EA_MAP;
|
prog->alloc = EA_REAL;
|
||||||
prog->len = h->len + po;
|
prog->len = h->len + po;
|
||||||
prog->npats = np = h->npats;
|
prog->npats = np = h->npats;
|
||||||
prog->pats = pp = (Patprog *) d;
|
prog->pats = pp = (Patprog *) d;
|
||||||
|
|
Loading…
Reference in a new issue