home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_09_05 / 9n05090a < prev    next >
Text File  |  1991-02-17  |  1KB  |  27 lines

  1.  
  2. #define D ,close(
  3.  
  4. char              *c,q              [512              ],m[              256
  5. ],*v[           99], **u,        *i[3];int         f[2],p;main       (){for
  6.  (m[m        [60]=   m[62      ]=32   ]=m[*      m=124   [m]=       9]=6;
  7.   e(-8)     ,gets      (1+(    c=q)     )||      exit      (0);     r(0,0)
  8.    )for(    ;*++        c;);  }r(t,      o){    *i=i        [2]=    0;for
  9.      (u=v  +98           ;m[*--c]         ^9;m [*c]          &32  ?i[*c
  10.        &2]=                *u,u-             v^98              &&++u:
  11.  
  12.         3       )if(!m[*c]){for(*++c=0;!m[*--c];);
  13.         *       --u= ++c;}u-v^98?strcmp(*u,"cd")?*c?pipe(f),o=f[
  14.         1       ]:
  15.         4       ,(p=fork())?e(p),o?r(o,0)D o)D*f):
  16.         1       ,wait(0):(o?dup2(*f,0)D*f)D o):*i?
  17.         5       D 0),e(open(*i,0)):
  18.         9       ,t?dup2(t,1)D t):i[
  19.         2       ]?
  20.         6       D 1),e(creat(i[2],438)):
  21.         5       ,e(execvp(*u,u))):e(chdir(u[1])*2):
  22.         3       ;}e(x){x<0?write(2,"?\n$ "-x/4,2),x+1||exit(1):
  23.         5       ;}
  24.  
  25.  
  26.  
  27.