Lines Matching refs:shp
208 Shell_t *shp = nv_shell(np); in put_ed() local
209 if(*name=='E' && nv_getval(sh_scoped(shp,VISINOD))) in put_ed()
211 if(!(cp=val) && (*name=='E' || !(cp=nv_getval(sh_scoped(shp,EDITNOD))))) in put_ed()
235 Shell_t *shp = nv_shell(np); in put_history() local
236 void *histopen = shp->hist_ptr; in put_history()
244 hist_close(shp->hist_ptr); in put_history()
250 sh_histinit(shp); in put_history()
259 Shell_t *shp = nv_shell(np); in put_optindex() local
260 shp->st.opterror = shp->st.optchar = 0; in put_optindex()
284 Shell_t *shp = nv_shell(np); in put_restricted() local
292 nv_scan(shp->track_tree,rehash,(void*)0,NV_TAGGED,NV_TAGGED); in put_restricted()
299 shp->pathlist = (void*)path_unsetfpath((Pathcomp_t*)shp->pathlist); in put_restricted()
301 shp->universe = 0; in put_restricted()
302 if(shp->pathlist) in put_restricted()
306 pp = (void*)path_addpath((Pathcomp_t*)shp->pathlist,val,PATH_PATH); in put_restricted()
308 pp = (void*)path_addpath((Pathcomp_t*)shp->pathlist,val,PATH_FPATH); in put_restricted()
311 if(shp->pathlist = (void*)pp) in put_restricted()
312 pp->shp = shp; in put_restricted()
315 Namval_t *mp = dtsearch(shp->var_tree,np); in put_restricted()
321 path_dump((Pathcomp_t*)shp->pathlist); in put_restricted()
329 Shell_t *shp = nv_shell(np); in put_cdpath() local
331 if(!shp->cdpathlist) in put_cdpath()
334 pp = (void*)path_addpath((Pathcomp_t*)shp->cdpathlist,val,PATH_CDPATH); in put_cdpath()
335 if(shp->cdpathlist = (void*)pp) in put_cdpath()
336 pp->shp = shp; in put_cdpath()
361 Shell_t *shp = nv_shell(np); in put_lang() local
398 if(!sh_isstate(SH_INIT) || shp->login_sh==0) in put_lang()
402 shp->decomma = (lc=localeconv()) && lc->decimal_point && *lc->decimal_point==','; in put_lang()
463 Shell_t *shp; in put_ifs() local
473 if(!val && !(flags&NV_CLONE) && (fp=np->nvfun) && !fp->disc && (shp=(Shell_t*)(fp->last))) in put_ifs()
474 nv_stack(np,&((Init_t*)shp->init_context)->IFS_init.hdr); in put_ifs()
486 register Shell_t *shp = nv_shell(np); in get_ifs() local
491 memset(shp->ifstable,0,(1<<CHAR_BIT)); in get_ifs()
505 shp->ifstable[c] = S_MBYTE; in get_ifs()
516 shp->ifstable[c] = n; in get_ifs()
521 shp->ifstable[' '] = shp->ifstable['\t'] = S_SPACE; in get_ifs()
522 shp->ifstable['\n'] = S_NL; in get_ifs()
565 Shell_t *shp = nv_shell(np); in get_seconds() local
572 sfprintf(shp->strbuf,"%.*f",places,d); in get_seconds()
573 return(sfstruse(shp->strbuf)); in get_seconds()
649 Shell_t *shp = nv_shell(np); in put_lineno() local
662 shp->st.firstline += nget_lineno(np,fp)+1-n; in put_lineno()
673 Shell_t *shp = nv_shell(np); in get_lastarg() local
676 … if(sh_isstate(SH_INIT) && (cp=shp->lastarg) && *cp=='*' && (pid=strtol(cp+1,&cp,10)) && *cp=='*') in get_lastarg()
678 return(shp->lastarg); in get_lastarg()
683 Shell_t *shp = nv_shell(np); in put_lastarg() local
686 sfprintf(shp->strbuf,"%.*g",12,*((double*)val)); in put_lastarg()
687 val = sfstruse(shp->strbuf); in put_lastarg()
691 if(shp->lastarg && !nv_isattr(np,NV_NOFREE)) in put_lastarg()
692 free((void*)shp->lastarg); in put_lastarg()
695 shp->lastarg = (char*)val; in put_lastarg()
1025 Shell_t *shp = &sh; in sh_init() local
1039 umask(shp->mask=umask(0)); in sh_init()
1040 shp->mac_context = sh_macopen(shp); in sh_init()
1041 shp->arg_context = sh_argopen(shp); in sh_init()
1042 shp->lex_context = (void*)sh_lexopen(0,shp,1); in sh_init()
1043 shp->ed_context = (void*)ed_open(shp); in sh_init()
1044 shp->strbuf = sfstropen(); in sh_init()
1045 shp->stk = stkstd; in sh_init()
1046 sfsetbuf(shp->strbuf,(char*)0,64); in sh_init()
1061 sh_regress_init(shp); in sh_init()
1065 shp->bltindata.shp = shp; in sh_init()
1083 b___regress__(2, regress, &shp->bltindata); in sh_init()
1088 shp->cpipe[0] = -1; in sh_init()
1089 shp->coutpipe = -1; in sh_init()
1090 shp->userid=getuid(); in sh_init()
1091 shp->euserid=geteuid(); in sh_init()
1092 shp->groupid=getgid(); in sh_init()
1093 shp->egroupid=getegid(); in sh_init()
1103 shp->lim.clk_tck = getconf("CLK_TCK"); in sh_init()
1104 shp->lim.arg_max = getconf("ARG_MAX"); in sh_init()
1105 shp->lim.open_max = getconf("OPEN_MAX"); in sh_init()
1106 shp->lim.child_max = getconf("CHILD_MAX"); in sh_init()
1107 shp->lim.ngroups_max = getconf("NGROUPS_MAX"); in sh_init()
1108 shp->lim.posix_version = getconf("VERSION"); in sh_init()
1109 shp->lim.posix_jobcontrol = getconf("JOB_CONTROL"); in sh_init()
1110 if(shp->lim.arg_max <=0) in sh_init()
1111 shp->lim.arg_max = ARG_MAX; in sh_init()
1112 if(shp->lim.child_max <=0) in sh_init()
1113 shp->lim.child_max = CHILD_MAX; in sh_init()
1114 if((v = getconf("PID_MAX")) > 0 && shp->lim.child_max > v) in sh_init()
1115 shp->lim.child_max = v; in sh_init()
1116 if(shp->lim.open_max <0) in sh_init()
1117 shp->lim.open_max = OPEN_MAX; in sh_init()
1118 if(shp->lim.open_max > (SHRT_MAX-2)) in sh_init()
1119 shp->lim.open_max = SHRT_MAX-2; in sh_init()
1120 if(shp->lim.clk_tck <=0) in sh_init()
1121 shp->lim.clk_tck = CLK_TCK; in sh_init()
1124 shp->lim.fs3d = 1; in sh_init()
1126 sh_ioinit(shp); in sh_init()
1128 sh_siginit(shp); in sh_init()
1131 shp->init_context = nv_init(shp); in sh_init()
1137 shp->login_sh = 2; in sh_init()
1139 env_init(shp); in sh_init()
1142 sfprintf(shp->strbuf,"%s/.kshrc",nv_getval(HOME)); in sh_init()
1143 nv_putval(ENVNOD,sfstruse(shp->strbuf),NV_RDONLY); in sh_init()
1154 shp->shpath = 0; in sh_init()
1157 shp->shpath = strdup(buff); in sh_init()
1159 sfprintf(shp->strbuf,"/proc/%d/exe",getpid()); in sh_init()
1160 if((n=readlink(sfstruse(shp->strbuf),buff,sizeof(buff)-1))>0) in sh_init()
1163 shp->shpath = strdup(buff); in sh_init()
1169 shp->shpath = strdup(cp); in sh_init()
1177 shp->shpath = strdup(stakptr(offset)); in sh_init()
1189 shp->st.tmout = SHOPT_TIMEOUT; in sh_init()
1207 shp->userinit = userinit = bash_init; in sh_init()
1210 (*userinit)(shp, 0); in sh_init()
1216 if((shp->st.dolc = sh_argopts(-argc,argv,shp)) < 0) in sh_init()
1218 shp->exitval = 2; in sh_init()
1219 sh_done(shp,0); in sh_init()
1222 shp->st.dolv=argv+(argc-1)-shp->st.dolc; in sh_init()
1223 shp->st.dolv[0] = argv[0]; in sh_init()
1224 if(shp->st.dolc < 1) in sh_init()
1228 shp->st.dolc--; in sh_init()
1229 shp->st.dolv++; in sh_init()
1233 name = shp->st.dolv[0]; in sh_init()
1258 struct passwd *pw = getpwuid(shp->userid); in sh_init()
1260 shp->user = strdup(pw->pw_name); in sh_init()
1265 if(shp->userid!=shp->euserid || shp->groupid!=shp->egroupid) in sh_init()
1269 if(!sh_isoption(SH_PRIVILEGED) && shp->userid >= SHOPT_P_SUID) in sh_init()
1271 setuid(shp->euserid=shp->userid); in sh_init()
1272 setgid(shp->egroupid=shp->groupid); in sh_init()
1279 if(shp->login_sh && argv[1] && strcmp(argv[0],argv[1])==0) in sh_init()
1287 shp->shname = strdup(argv[0]); in sh_init()
1289 shp->shname = strdup(shp->st.dolv[0]); in sh_init()
1294 error_info.id = strdup(shp->st.dolv[0]); /* error_info.id is $0 */ in sh_init()
1295 shp->jmpbuffer = (void*)&shp->checkbase; in sh_init()
1296 sh_pushcontext(&shp->checkbase,SH_JMPSCRIPT); in sh_init()
1297 shp->st.self = &shp->global; in sh_init()
1298 shp->topscope = (Shscope_t*)shp->st.self; in sh_init()
1302 shp->login_files = login_files; in sh_init()
1303 shp->bltindata.version = SH_VERSION; in sh_init()
1304 shp->bltindata.shp = shp; in sh_init()
1305 shp->bltindata.shrun = sh_run; in sh_init()
1306 shp->bltindata.shtrap = sh_trap; in sh_init()
1307 shp->bltindata.shexit = sh_exit; in sh_init()
1308 shp->bltindata.shbltin = sh_addbuiltin; in sh_init()
1310 shp->bltindata.shgetenv = sh_getenv; in sh_init()
1311 shp->bltindata.shsetenv = sh_setenviron; in sh_init()
1312 astintercept(&shp->bltindata,1); in sh_init()
1330 if(shp->userinit=userinit) in sh_init()
1331 (*userinit)(shp, 0); in sh_init()
1332 return(shp); in sh_init()
1345 Shell_t *shp = &sh; in sh_reinit() local
1349 for(np=dtfirst(shp->fun_tree);np;np=npnext) in sh_reinit()
1351 if((dp=shp->fun_tree)->walk) in sh_reinit()
1353 npnext = (Namval_t*)dtnext(shp->fun_tree,np); in sh_reinit()
1354 if(np>= shp->bltin_cmds && np < &shp->bltin_cmds[nbltins]) in sh_reinit()
1362 dtclose(shp->alias_tree); in sh_reinit()
1363 shp->alias_tree = inittree(shp,shtab_aliases); in sh_reinit()
1364 shp->last_root = shp->var_tree; in sh_reinit()
1365 shp->namespace = 0; in sh_reinit()
1366 shp->inuse_bits = 0; in sh_reinit()
1367 if(shp->userinit) in sh_reinit()
1368 (*shp->userinit)(shp, 1); in sh_reinit()
1369 if(shp->heredocs) in sh_reinit()
1371 sfclose(shp->heredocs); in sh_reinit()
1372 shp->heredocs = 0; in sh_reinit()
1376 nv_scan(shp->var_tree,sh_envnolocal,(void*)0,NV_EXPORT,0); in sh_reinit()
1377 nv_scan(shp->var_tree,sh_envnolocal,(void*)0,NV_ARRAY,NV_ARRAY); in sh_reinit()
1379 memset(shp->st.trapcom,0,(shp->st.trapmax+1)*sizeof(char*)); in sh_reinit()
1391 shp->options = opt; in sh_reinit()
1394 shp->arglist = sh_argcreate(argv); in sh_reinit()
1395 if(shp->arglist) in sh_reinit()
1396 sh_argreset(shp,shp->arglist,NIL(struct dolnod*)); in sh_reinit()
1397 shp->envlist=0; in sh_reinit()
1398 shp->curenv = 0; in sh_reinit()
1399 shp->shname = error_info.id = strdup(shp->st.dolv[0]); in sh_reinit()
1401 shp->fn_depth = shp->dot_depth = 0; in sh_reinit()
1410 shp->st.filename = strdup(shp->lastarg); in sh_reinit()
1456 Shell_t *shp = sp->sh; in create_stat() local
1472 shp->last_table = SH_STATS; in create_stat()
1489 Shell_t *shp = sh_getinterp(); in name_stat() local
1490 sfprintf(shp->strbuf,".sh.stats.%s",np->nvname); in name_stat()
1491 return(sfstruse(shp->strbuf)); in name_stat()
1505 static void stat_init(Shell_t *shp) in stat_init() argument
1512 shp->stats = (int*)calloc(sizeof(int*),nstat); in stat_init()
1513 sp->sh = shp; in stat_init()
1521 np->nvalue.ip = &shp->stats[i]; in stat_init()
1536 static Init_t *nv_init(Shell_t *shp) in nv_init() argument
1544 shp->nvfun.last = (char*)shp; in nv_init()
1545 shp->nvfun.nofree = 1; in nv_init()
1546 ip->sh = shp; in nv_init()
1547 shp->var_base = shp->var_tree = inittree(shp,shtab_variables); in nv_init()
1612 d = (shp->pid&RANDMASK); in nv_init()
1627 (PPIDNOD)->nvalue.lp = (&shp->ppid); in nv_init()
1628 (TMOUTNOD)->nvalue.lp = (&shp->st.tmout); in nv_init()
1630 (OPTINDNOD)->nvalue.lp = (&shp->st.optindex); in nv_init()
1632 shp->alias_tree = inittree(shp,shtab_aliases); in nv_init()
1633 shp->track_tree = dtopen(&_Nvdisc,Dtset); in nv_init()
1634 shp->bltin_tree = inittree(shp,(const struct shtable2*)shtab_builtins); in nv_init()
1635 shp->fun_tree = dtopen(&_Nvdisc,Dtoset); in nv_init()
1636 dtview(shp->fun_tree,shp->bltin_tree); in nv_init()
1638 if(np = nv_mount(DOTSHNOD, "global", shp->var_tree)) in nv_init()
1644 np = nv_mount(DOTSHNOD, "type", shp->typedict=dtopen(&_Nvdisc,Dtoset)); in nv_init()
1646 SH_LINENO->nvalue.ip = &shp->st.lineno; in nv_init()
1652 stat_init(shp); in nv_init()
1660 static Dt_t *inittree(Shell_t *shp,const struct shtable2 *name_vals) in inittree() argument
1670 if(!shp->bltin_nodes) in inittree()
1672 shp->bltin_nodes = np; in inittree()
1673 shp->bltin_nnodes = n; in inittree()
1677 shp->bltin_cmds = np; in inittree()
1681 treep->user = (void*)shp; in inittree()
1719 static void env_init(Shell_t *shp) in env_init() argument
1726 shp->env = env_open(environ,3); in env_init()
1727 env_delete(shp->env,"_"); in env_init()
1735 else if(np=nv_open(cp,shp->var_tree,(NV_EXPORT|NV_IDENT|NV_ASSIGN|NV_NOFAIL))) in env_init()
1743 ep[-1] = environ[shp->nenv]; in env_init()
1744 environ[shp->nenv++] = cp; in env_init()
1751 np = nv_search(cp+2,shp->var_tree,NV_ADD); in env_init()
1788 env_delete(shp->env,e_envmarker); in env_init()