3 * Uncompress program this is very very fast
19 unsigned char fptr
[maxno
];
31 fptr
= (unsigned char * ) malloc(maxno
);
35 perror("Cannot allocate memory");
48 fd
= fopen(argv
[1], "r" );
49 if( fd
== 0 ) { perror("Open failed"); exit(1); }
58 Uncompression routine -- v.v.fast
63 register unsigned char * mainscan
;
64 register unsigned char * secondscan
;
65 register unsigned char * ptr
= (unsigned char * ) fptr
;
66 register unsigned char * eptr
= ptr
+maxno
;
67 register unsigned int len
;
84 len
= (unsigned char) getc(fd
);
86 len
+= ((unsigned char) getc(fd
)) << 8;
87 secondscan
= mainscan
- len
;
88 if(len
> mainscan
- ptr
) secondscan
+= maxno
;
89 len
= (unsigned char) ch
& 0x7F;
92 *mainscan
++ = *secondscan
++;
93 if( secondscan
== eptr
) secondscan
= ptr
;
94 if( mainscan
== eptr
)
95 { write(1, ptr
, (int)(mainscan
-ptr
)); mainscan
= ptr
; }
102 if( mainscan
== eptr
)
103 { write(1, ptr
, (int)(mainscan
-ptr
)); mainscan
= ptr
; }
105 if( mainscan
!= ptr
)
106 { write(1, ptr
, (int)(mainscan
-ptr
)); mainscan
= ptr
; }