mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-25 05:31:19 +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;
|
||||
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;
|
||||
|
|
|
@ -2619,7 +2619,7 @@ try_dump_file(char *dump, char *name, char *func)
|
|||
|
||||
prog = (Eprog) zalloc(sizeof(*prog));
|
||||
|
||||
prog->alloc = EA_MAP;
|
||||
prog->alloc = EA_REAL;
|
||||
prog->len = h->len + po;
|
||||
prog->npats = np = h->npats;
|
||||
prog->pats = pp = (Patprog *) d;
|
||||
|
|
Loading…
Reference in a new issue