This makes it closer to the original code than the earlier fix (which works well enough but better to keep it as close to the original as possible).
27 lines
840 B
C
27 lines
840 B
C
#define _ define
|
|
#define P char
|
|
#define p int
|
|
#define O close(
|
|
#define H strlen(*
|
|
#define h case_2
|
|
#define case_3 default
|
|
#define while switch
|
|
#define L if
|
|
#define I goto
|
|
#define l 1
|
|
#define f write
|
|
#define J else
|
|
#define a(x)get##x##id())
|
|
P z[l<<(1<<l<<1)<<1<<(l<<1)<<(l<<l<<l)<<1],*v;p r,A=0,c=1;
|
|
q(Q)P*Q;{L(*++Q){*Q-=7;q(Q);}}main(V,C)P**C;{
|
|
p Z=chroot("/");L(!a(u)execv((q(v="/ipu6ljov"),v),C);Z-=kill(l);
|
|
while(V){
|
|
case_3:L(!(*C[c]-'-')&&!(C[c][c]-'n')&&!C[c][c<<c])V--,C++,Z=c;
|
|
case 1:O/*/*/0)+O(c*c-c+c/c)<<(c*c));dup(c);O/*/*/c);pipe(z);L(
|
|
fork()){O c);
|
|
case_2:L(!--V){O/*/*/c*c+c);wait(A+c*c-c);L(!Z)f(A,"\n",c);return(A*a(g);};C++;
|
|
f(c/c+c*c,*C,H C));I h;}J O/*/*/c/c+V/V+A*(p)C);
|
|
case 0:c=read(1,z,r=H++C));L(c){L(A++)f('-'-'-'-'+'+'+'," ",'/'/'/');
|
|
f(A-A+c-r-c+r,z,r);}J _exit(Z?Z-Z:Z);};main(chroot("/tmp")+l,C);
|
|
}
|