Lines Matching refs:shp

56 static void	chkmail(Shell_t *shp, char*);
88 Shell_t *shp = (Shell_t*)context;
91 if(shp->trapnote&SH_SIGSET)
111 int sh_source(Shell_t *shp, Sfio_t *iop, const char *file)
124 shp->st.filename = path_fullname(stakptr(PATH_OFFSET));
126 exfile(shp, iop, fd);
143 register Shell_t *shp;
157 shp = sh_init(ac,av,userinit);
162 fts_notify(fts_sigcheck,(void*)shp);
164 if(sigsetjmp(*((sigjmp_buf*)shp->jmpbuffer),0))
169 shp->fn_depth = shp->dot_depth = 0;
172 shp->pid = getpid();
173 srand(shp->pid&0x7fff);
174 shp->ppid = getppid();
185 ((Lex_t*)shp->lex_context)->nonstandard = 0;
186 if(shp->ppid==1)
187 shp->login_sh++;
188 if(shp->login_sh >= 2)
205 for(i=0; i<elementsof(shp->offoptions.v); i++)
206 shp->options.v[i] &= ~shp->offoptions.v[i];
217 job_init(shp,sh_isoption(SH_LOGIN_SHELL));
221 sh_source(shp, iop, e_sysprofile);
224 char **files = shp->login_files;
225 while ((name = *files++) && !sh_source(shp, iop, sh_mactry(shp,name)));
238 sh_source(shp, iop, e_bash_sysrc);
240 sh_source(shp, iop, shp->rcfile ? shp->rcfile : sh_mactry(shp,(char*)e_bash_rc));
245 if(name = sh_mactry(shp,nv_getval(ENVNOD)))
249 sh_source(shp, iop, e_sysrc);
253 sh_source(shp, iop, name);
259 sh_source(shp, iop, e_suidprofile);
261 shp->st.cmdname = error_info.id = command;
266 if(shp->comdiv)
269 iop = sfnew(NIL(Sfio_t*),shp->comdiv,strlen(shp->comdiv),0,SF_STRING|SF_READ);
274 error_info.id = shp->shname;
301 shp->st.dolv[0] = av[0];
302 fixargs(shp->st.dolv,1);
319 shp->st.filename = path_fullname(name);
332 shp->st.filename = path_fullname(sp);
344 shp->comdiv = (char*)malloc(strlen(name)+7);
345 name = strcopy(shp->comdiv,name);
346 if(shp->st.dolc)
353 shp->readscript = shp->shname;
356 shp->comdiv--;
366 fdin = shp->infd;
367 fixargs(shp->st.dolv,1);
372 exfile(shp,iop,fdin);
373 sh_done(shp,0);
383 static void exfile(register Shell_t *shp, register Sfio_t *iop,register int fno)
392 nv_putval(SH_PATHNAMENOD, shp->st.filename ,NV_NOFREE);
400 shp->fdstatus[r] = shp->fdstatus[fno];
405 shp->fdstatus[fno] |= IOCLEX;
406 iop = sh_iostream((void*)shp,fno);
413 shp->infd = fno;
417 nv_putval(PS1NOD,(shp->euserid?e_stdprompt:e_supprompt),NV_RDONLY);
419 if(sh_histinit((void*)shp))
440 sh_iorestore((void*)shp,0,jmpval);
441 hist_flush(shp->hist_ptr);
442 sfsync(shp->outpool);
443 shp->st.execbrk = shp->st.breakcnt = 0;
450 if(!sh_isoption(SH_INTERACTIVE) || sh_isstate(SH_FORKED) || (jmpval > SH_JMPERREXIT && job_close(shp) >=0))
466 tcsetpgrp(job.fd,shp->pid);
472 shp->st.optindex = 1;
474 shp->st.loopcnt = 0;
475 shp->trapnote = 0;
476 shp->intrap = 0;
478 shp->inlineno = 1;
479 shp->binscript = 0;
485 shp->nextprompt = 1;
486 sh_freeup(shp);
523 chkmail(shp,mail);
527 if(shp->hist_ptr)
528 hist_eof(shp->hist_ptr);
530 shp->timeout = shp->st.tmout;
532 if(shp->timeout <= 0 || shp->timeout > SHOPT_TIMEOUT)
533 shp->timeout = SHOPT_TIMEOUT;
535 shp->inlineno = 1;
537 shp->exitval = 0;
538 shp->trapnote = 0;
554 !sferror(sfstderr) && (shp->fdstatus[fno]&IOTTY))
560 else if(job_close(shp)<0)
572 if(sh_isstate(SH_INTERACTIVE) && shp->hist_ptr)
575 hist_eof(shp->hist_ptr);
582 t = (Shnode_t*)sh_parse(shp,iop,0);
585 shp->readscript = 0;
586 if(sh_isstate(SH_INTERACTIVE) && shp->hist_ptr)
587 hist_flush(shp->hist_ptr);
594 (fno<0 || !(shp->fdstatus[fno]&(IOTTY|IONOSEEK)))
599 shp->st.execbrk = 0;
601 if(shp->forked)
616 job_close(shp);
619 siglongjmp(*shp->jmplist,jmpval);
621 sh_done(shp,0);
624 if(shp->st.filename)
625 free((void*)shp->st.filename);
626 shp->st.filename = 0;
631 static void chkmail(Shell_t *shp, char *files)
680 char *save = shp->lastarg;
681 shp->lastarg = cp;
682 errormsg(SH_DICT,0,sh_mactry(shp,qp?qp+1:(char*)e_mailmsg));
683 shp->lastarg = save;