home *** CD-ROM | disk | FTP | other *** search
-
- #define D ,close(
-
- char *c,q [512 ],m[ 256
- ],*v[ 99], **u, *i[3];int f[2],p;main (){for
- (m[m [60]= m[62 ]=32 ]=m[* m=124 [m]= 9]=6;
- e(-8) ,gets (1+( c=q) )|| exit (0); r(0,0)
- )for( ;*++ c;); }r(t, o){ *i=i [2]= 0;for
- (u=v +98 ;m[*--c] ^9;m [*c] &32 ?i[*c
- &2]= *u,u- v^98 &&++u:
-
- 3 )if(!m[*c]){for(*++c=0;!m[*--c];);
- * --u= ++c;}u-v^98?strcmp(*u,"cd")?*c?pipe(f),o=f[
- 1 ]:
- 4 ,(p=fork())?e(p),o?r(o,0)D o)D*f):
- 1 ,wait(0):(o?dup2(*f,0)D*f)D o):*i?
- 5 D 0),e(open(*i,0)):
- 9 ,t?dup2(t,1)D t):i[
- 2 ]?
- 6 D 1),e(creat(i[2],438)):
- 5 ,e(execvp(*u,u))):e(chdir(u[1])*2):
- 3 ;}e(x){x<0?write(2,"?\n$ "-x/4,2),x+1||exit(1):
- 5 ;}
-
-
-
-