Lines Matching refs:shp

101 void *sh_argopen(Shell_t *shp)  in sh_argopen()  argument
105 ap->sh = shp; in sh_argopen()
140 Shell_t *shp = (Shell_t*)context; in sh_argopts() local
142 register Arg_t *ap = (Arg_t*)(shp->arg_context); in sh_argopts()
143 Lex_t *lp = (Lex_t*)(shp->lex_context); in sh_argopts()
385 void sh_applyopts(Shell_t* shp,Shopt_t newflags) in sh_applyopts() argument
392 …h_isstate(SH_INIT) && is_option(&((Arg_t*)shp->arg_context)->sh->offoptions,SH_PRIVILEGED) && shp-… in sh_applyopts()
396 setuid(shp->userid); in sh_applyopts()
397 setgid(shp->groupid); in sh_applyopts()
398 if(shp->euserid==0) in sh_applyopts()
400 shp->euserid = shp->userid; in sh_applyopts()
401 shp->egroupid = shp->groupid; in sh_applyopts()
404 else if((shp->userid!=shp->euserid && setuid(shp->euserid)<0) || in sh_applyopts()
405 (shp->groupid!=shp->egroupid && setgid(shp->egroupid)<0) || in sh_applyopts()
406 (shp->userid==shp->euserid && shp->groupid==shp->egroupid)) in sh_applyopts()
438 shp->options = newflags; in sh_applyopts()
481 struct dolnod *sh_argfree(Shell_t *shp, struct dolnod *blk,int flag) in sh_argfree() argument
485 register Arg_t *ap = (Arg_t*)shp->arg_context; in sh_argfree()
546 struct dolnod *sh_argnew(Shell_t *shp,char *argi[], struct dolnod **savargfor) in sh_argnew() argument
548 register Arg_t *ap = (Arg_t*)shp->arg_context; in sh_argnew()
560 void sh_argreset(Shell_t *shp,struct dolnod *blk, struct dolnod *afor) in sh_argreset() argument
562 register Arg_t *ap = (Arg_t*)shp->arg_context; in sh_argreset()
563 while(ap->argfor=sh_argfree(shp,ap->argfor,0)); in sh_argreset()
567 shp->st.dolc = ap->dolh->dolnum-1; in sh_argreset()
568 shp->st.dolv = ap->dolh->dolval; in sh_argreset()
575 struct dolnod *sh_arguse(Shell_t* shp) in sh_arguse() argument
578 register Arg_t *ap = (Arg_t*)shp->arg_context; in sh_arguse()
699 char **sh_argbuild(Shell_t *shp,int *nargs, const struct comnod *comptr,int flag) in sh_argbuild() argument
703 shp->xargmin = 0; in sh_argbuild()
719 shp->lastpath = 0; in sh_argbuild()
728 n = arg_expand(shp,argp,&arghead,flag); in sh_argbuild()
731 if(shp->xargmin==0) in sh_argbuild()
732 shp->xargmin = *nargs; in sh_argbuild()
733 shp->xargmax = *nargs+n; in sh_argbuild()
749 comargn=(char**)stkalloc(shp->stk,(unsigned)(argn+1)*sizeof(char*)); in sh_argbuild()
772 shp->last_table = 0; in sh_argbuild()
797 struct argnod *sh_argprocsub(Shell_t *shp,struct argnod *argp) in sh_argprocsub() argument
802 int subshell = shp->subshell; in sh_argprocsub()
803 ap = (struct argnod*)stkseek(shp->stk,ARGVAL); in sh_argprocsub()
806 sfwrite(shp->stk,e_devfdNN,8); in sh_argprocsub()
809 sfputr(shp->stk,fmtbase((long)pv[fd],10,0),0); in sh_argprocsub()
810 ap = (struct argnod*)stkfreeze(shp->stk,0); in sh_argprocsub()
811 shp->inpipe = shp->outpipe = 0; in sh_argprocsub()
814 shp->subshell = 0; in sh_argprocsub()
817 shp->inpipe = pv; in sh_argprocsub()
822 shp->outpipe = pv; in sh_argprocsub()
825 shp->subshell = subshell; in sh_argprocsub()
829 sh_iosave(shp,-pv[fd], shp->topfd, (char*)0); in sh_argprocsub()
834 static int arg_expand(Shell_t *shp,register struct argnod *argp, struct argnod **argchain,int flag) in arg_expand() argument
842 ap = sh_argprocsub(shp,argp); in arg_expand()
867 count = sh_macexpand(shp,argp,argchain,flag); in arg_expand()