char * getjobtext(Eprog prog, Wordcode c) { static char jbuf[JOBTEXTSIZE]; struct estate s; if (!c) c = prog->prog; useeprog(prog); /* mark as used */ s.prog = prog; s.pc = c; s.strs = prog->strs; tindent = 0; tnewlins = 0; tbuf = NULL; tptr = jbuf; tlim = tptr + JOBTEXTSIZE - 1; tjob = 1; gettext2(&s); *tptr = '\0'; freeeprog(prog); /* mark as unused */ untokenize(jbuf); return jbuf; }
mod_export char * getpermtext(Eprog prog, Wordcode c, int start_indent) { struct estate s; if (!c) c = prog->prog; useeprog(prog); /* mark as used */ s.prog = prog; s.pc = c; s.strs = prog->strs; tindent = start_indent; tnewlins = 1; tbuf = (char *)zalloc(tsiz = 32); tptr = tbuf; tlim = tbuf + tsiz; tjob = 0; if (prog->len) gettext2(&s); *tptr = '\0'; freeeprog(prog); /* mark as unused */ untokenize(tbuf); return tbuf; }
static void freeshfuncnode(HashNode hn) { Shfunc shf = (Shfunc) hn; zsfree(shf->nam); if (shf->funcdef) freeeprog(shf->funcdef); zfree(shf, sizeof(struct shfunc)); }
static void freeshfuncnode(HashNode hn) { Shfunc shf = (Shfunc) hn; zsfree(shf->node.nam); if (shf->funcdef) freeeprog(shf->funcdef); if (shf->redir) freeeprog(shf->redir); zsfree(shf->filename); if (shf->sticky) { if (shf->sticky->n_on_opts) zfree(shf->sticky->on_opts, shf->sticky->n_on_opts * sizeof(*shf->sticky->on_opts)); if (shf->sticky->n_off_opts) zfree(shf->sticky->off_opts, shf->sticky->n_off_opts * sizeof(*shf->sticky->off_opts)); zfree(shf->sticky, sizeof(*shf->sticky)); } zfree(shf, sizeof(struct shfunc)); }