Lines Matching defs:shp

48 	register Shell_t *shp = context->shp;
85 else if(*action=='+' && action[1]==0 && shp->st.self == &shp->global)
96 sig = sig_number(shp,arg);
105 char **trap = (shp->st.otrap?shp->st.otrap:shp->st.trap);
118 shp->st.otrap = 0;
119 if(shp->st.trap[sig])
120 free(shp->st.trap[sig]);
121 shp->st.trap[sig] = 0;
123 shp->st.trap[sig] = strdup(action);
126 if(shp->st.trap[sig])
127 shp->trapnote |= SH_SIGTRAP;
129 shp->trapnote = 0;
133 if(sig>shp->gd->sigmax)
140 char **trapcom = (shp->st.otrapcom?shp->st.otrapcom:shp->st.trapcom);
152 if(sig >= shp->st.trapmax)
153 shp->st.trapmax = sig+1;
154 arg = shp->st.trapcom[sig];
156 shp->st.trapcom[sig] = (shp->sigflag[sig]&SH_SIGOFF) ? Empty : strdup(action);
163 sig_list(shp,-2);
171 register Shell_t *shp = context->shp;
177 if((signame=argv[opt_info.index++]) && (sig=sig_number(shp,signame+1))>=0)
209 sig_list(shp,usemenu);
213 sig_list(shp,((int)strtol(signame, (char**)0, 10)&0177)+1);
216 if((sig=sig_number(shp,signame))<0)
218 shp->exitval = 2;
224 return(shp->exitval);
228 if((sig=sig_number(shp,signame)) < 0 || sig > shp->gd->sigmax)
232 shp->exitval = 1;
233 return(shp->exitval);
240 static int sig_number(Shell_t *shp,const char *string)
286 n = shp->gd->sigruntime[(n&((1<<SH_SIGBITS)-1))-1];
293 if(n<0 && shp->gd->sigruntime[1] && (name=stakptr(o)) && *name++=='R' && *name++=='T')
298 n = shp->gd->sigruntime[SH_SIGRTMIN] + sig;
303 n = shp->gd->sigruntime[SH_SIGRTMAX] - sig;
306 n = shp->gd->sigruntime[SH_SIGRTMIN] + sig - 1;
307 if(n<shp->gd->sigruntime[SH_SIGRTMIN] || n>shp->gd->sigruntime[SH_SIGRTMAX])
318 static char* sig_name(Shell_t *shp,int sig, char* buf, int pfx)
323 if(sig>shp->gd->sigruntime[SH_SIGRTMIN] && sig<shp->gd->sigruntime[SH_SIGRTMAX])
328 if(sig>shp->gd->sigruntime[SH_SIGRTMIN]+(shp->gd->sigruntime[SH_SIGRTMAX]-shp->gd->sigruntime[SH_SIGRTMIN])/2)
333 sig = shp->gd->sigruntime[SH_SIGRTMAX]-sig;
340 sig = sig-shp->gd->sigruntime[SH_SIGRTMIN];
360 static void sig_list(register Shell_t *shp,register int flag)
372 for(sig=shp->gd->sigmax; sig>=0; sig--)
380 if (((tp->sh_number>>SH_SIGBITS) & SH_SIGRUNTIME) && (sig = shp->gd->sigruntime[sig-1]+1) == 1)
393 sfputr(sfstdout, sig_name(shp,flag-1,name,0), '\n');
398 sig = shp->st.trapmax;
400 trapcom = (shp->st.otrapcom?shp->st.otrapcom:shp->st.trapcom);
405 if(sig > shp->gd->sigmax || !(sname=(char*)names[sig]))
406 sname = sig_name(shp,sig,name,1);
411 if(!(trap=shp->st.otrap?shp->st.otrap[sig]:shp->st.trap[sig]))
419 for(sig=1; sig <= shp->gd->sigmax; sig++)
423 sname = sig_name(shp,sig,name,1);
435 sh_menu(sfstdout,shp->gd->sigmax,(char**)names+1);