Lines Matching refs:shp

66 	logdata.sh = ((Shbltin_t*)extra)->shp;
102 register Shell_t *shp;
105 shp = ((Shbltin_t*)extra)->shp;
109 shp = logp->sh;
111 pp = (struct checkpt*)shp->jmplist;
116 register struct argnod *arg=shp->envlist;
119 if(shp->subshell && !shp->subshare)
124 env_close(shp->env);
125 shp->env = env_open((char**)0,3);
127 nv_scan(shp->var_tree,noexport,0,NV_EXPORT,NV_EXPORT);
133 (*cp=0,np=nv_search(arg->argval,shp->var_tree,0)))
136 sh_envput(shp->env,np);
146 if(job_close(shp) < 0)
152 sh_freeup(shp);
153 path_exec(shp,pname,argv,NIL(struct argnod*));
154 sh_done(shp,0);
163 Shell_t *shp = ((Shbltin_t*)extra)->shp;
178 r = !sh_arith(shp,arg);
185 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
204 return(shp->exitval);
212 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
213 struct sh_scoped savst, *prevscope = shp->st.self;
233 if(shp->dot_depth+1 > DOTMAX)
235 if(!(np=shp->posix_fun))
238 np = nv_search(script,shp->fun_tree,0);
243 path_search(shp,script,NIL(Pathcomp_t**),0);
257 if((fd=path_open(shp,script,path_get(shp,script))) < 0)
259 filename = path_fullname(shp,stkptr(shp->stk,PATH_OFFSET));
262 *prevscope = shp->st;
263 shp->st.lineno = np?((struct functnod*)nv_funtree(np))->functline:1;
264 shp->st.var_local = shp->st.save_tree = shp->var_tree;
267 shp->st.filename = filename;
268 shp->st.lineno = 1;
270 level = shp->fn_depth+shp->dot_depth+1;
272 shp->st.prevst = prevscope;
273 shp->st.self = &savst;
274 shp->topscope = (Shscope_t*)shp->st.self;
275 prevscope->save_tree = shp->var_tree;
276 shp->st.cmdname = argv[0];
278 shp->st.filename = np->nvalue.rp->fname;
279 nv_putval(SH_PATHNAMENOD, shp->st.filename ,NV_NOFREE);
280 shp->posix_fun = 0;
282 argsave = sh_argnew(shp,argv,&saveargfor);
283 sh_pushcontext(shp,&buff,SH_JMPDOT);
287 shp->dot_depth++;
298 sh_popcontext(shp,&buff);
300 free((void*)shp->st.filename);
301 shp->dot_depth--;
303 sh_argreset(shp,argsave,saveargfor);
306 prevscope->dolc = shp->st.dolc;
307 prevscope->dolv = shp->st.dolv;
309 if (shp->st.self != &savst)
310 *shp->st.self = shp->st;
312 memcpy((void*)&shp->st, (void*)prevscope, sizeof(Shscope_t));
313 shp->topscope = (Shscope_t*)prevscope;
314 nv_putval(SH_PATHNAMENOD, shp->st.filename ,NV_NOFREE);
316 siglongjmp(*shp->jmplist,jmpval);
317 return(shp->exitval);
345 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
358 n = ((arg= *argv)?(int)sh_arith(shp,arg):1);
359 if(n<0 || shp->st.dolc<n)
363 shp->st.dolv += n;
364 shp->st.dolc -= n;
371 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
385 return(shp->exitval);
397 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
425 return(shp->exitval);
431 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
458 return(shp->exitval);
514 register Shell_t *shp = ((Shbltin_t*)extra)->shp;
539 if(!shp->gd->lim.fs3d)
551 vend = stkalloc(shp->stk,++n);
579 if(shp->subshell && !shp->subshare)