Lines Matching refs:shp

233 	Shell_t *shp = &sh;
234 if(shp->pwd)
235 return((char*)shp->pwd);
279 shp->pwd = (char*)(PWDNOD->nvalue.cp);
405 first = (pp->flags&PATH_CDPATH)?pp->shp->cdpathlist:path_get("");
440 ppnext->shp = pp->shp;
473 static Pathcomp_t* defpath_init(Shell_t *shp)
476 if(shp->defpathlist = (void*)pp)
477 pp->shp = shp;
481 static void path_init(Shell_t *shp)
487 if(val=sh_scoped(shp,(PATHNOD))->nvalue.cp)
489 pp = (void*)path_addpath((Pathcomp_t*)shp->pathlist,val,PATH_PATH);
490 if(shp->pathlist = (void*)pp)
491 pp->shp = shp;
495 if(!(pp=(Pathcomp_t*)shp->defpathlist))
496 pp = defpath_init(shp);
497 shp->pathlist = (void*)path_dup(pp);
499 if(val=sh_scoped(shp,(FPATHNOD))->nvalue.cp)
501 pp = (void*)path_addpath((Pathcomp_t*)shp->pathlist,val,PATH_FPATH);
502 if(shp->pathlist = (void*)pp)
503 pp->shp = shp;
512 register Shell_t *shp = &sh;
518 if(!shp->pathlist)
519 path_init(shp);
520 pp = (Pathcomp_t*)shp->pathlist;
524 if(!(pp=(Pathcomp_t*)shp->defpathlist))
525 pp = defpath_init(shp);
538 Shell_t *shp;
540 shp = pp->shp;
543 shp = sh_getinterp();
544 if(!shp->pathlist)
545 path_init(shp);
573 if(!shp)
575 shp = sh_getinterp();
580 shp->fdstatus[fd] |= IOCLEX;
629 static void funload(Shell_t *shp,int fno, const char *name)
631 char *pname,*oldname=shp->st.filename, buff[IOBSIZE+1];
634 int savestates = sh_getstate(), oldload=shp->funload;
636 if(shp->fpathdict && (rp = dtmatch(shp->fpathdict,(void*)pname)))
650 while((rp=dtnext(shp->fpathdict,rp)) && strcmp(pname,rp->fname)==0);
655 shp->readscript = (char*)name;
656 shp->st.filename = pname;
657 shp->funload = 1;
660 shp->readscript = 0;
661 free((void*)shp->st.filename);
662 shp->funload = oldload;
663 shp->st.filename = oldname;
682 Shell_t *shp = &sh;
703 if(!shp->defpathlist)
704 defpath_init(shp);
706 else if(!shp->pathlist)
707 path_init(shp);
710 if((np=nv_search(name,shp->track_tree,0)) && !nv_isattr(np,NV_NOALIAS) && (pp=(Pathcomp_t*)np->nvalue.cp))
720 if(!pp && (np=nv_search(name,shp->fun_tree,HASH_NOSCOPE))&&np->nvalue.ip)
728 pp=sh_isstate(SH_DEFPATH)?shp->defpathlist:shp->pathlist;
736 funload(shp,fno,name);
744 if(np=nv_search(name,shp->track_tree,NV_ADD))
758 Shell_t *shp = &sh;
760 shp->path_err = ENOENT;
763 shp->path_err = 0;
775 shp->path_err = ENOENT;
843 funload(shp,f,name);
870 shp->path_err = (noexec?noexec:ENOENT);
969 Shell_t *shp = &sh;
982 shp->path_err= ENOENT;
1004 ((struct checkpt*)shp->jmplist)->mode = SH_JMPEXIT;
1005 if((errno=shp->path_err)==ENOENT)
1013 Shell_t *shp = sh_getinterp();
1028 np=nv_search(argv[0],shp->track_tree,0);
1075 np = nv_open(libenv,shp->var_tree,0);
1169 ((struct checkpt*)shp->jmplist)->mode = SH_JMPEXIT;
1174 exscript(shp,path,argv,envp);
1185 exscript(shp,path,argv,envp);
1197 shp->path_err = errno;
1225 static void exscript(Shell_t *shp,register char *path,register char *argv[],char **envp)
1229 shp->comdiv=0;
1230 shp->bckpid = 0;
1231 shp->st.ioset=0;
1233 if(shp->cpipe[0]>0)
1234 sh_pclose(shp->cpipe);
1235 if(shp->cpid && shp->outpipe)
1236 sh_close(*shp->outpipe);
1237 shp->cpid = 0;
1241 if(shp->infd>0 && (shp->fdstatus[shp->infd]&IOCLEX))
1242 sh_close(shp->infd);
1261 if((euserid=geteuid()) != shp->userid)
1291 shp->infd = n;
1294 if((shp->infd = sh_open(path,O_RDONLY,0)) < 0)
1297 shp->infd = sh_iomovefd(shp->infd);
1301 shp->arglist = sh_argcreate(argv);
1302 shp->lastarg = strdup(path);
1304 shp->readscript = error_info.id;
1306 if(shp->hist_ptr && (path=nv_getval(HISTFILE)) && strcmp(path,shp->hist_ptr->histname))
1308 hist_close(shp->hist_ptr);
1312 if(shp->sigflag[SIGCHLD]==SH_SIGOFF)
1313 shp->sigflag[SIGCHLD] = SH_SIGFAULT;
1314 siglongjmp(*shp->jmplist,SH_JMPSCRIPT);
1604 Pathcomp_t *pp = (Pathcomp_t*)old->shp->defpathlist;
1606 pp = defpath_init(old->shp);
1694 Shell_t *shp = &sh;
1695 if(shp->fpathdict)
1698 for(rp=(struct Ufunction*)dtfirst(shp->fpathdict);rp;rp=rpnext)
1700 rpnext = (struct Ufunction*)dtnext(shp->fpathdict,rp);