mirror of https://github.com/madler/zlib.git
parent
1c71d8b13b
commit
bdde4e09d2
25 changed files with 892 additions and 918 deletions
@ -1,69 +0,0 @@ |
|||||||
#include <stdio.h> |
|
||||||
#include <stdlib.h> |
|
||||||
#include "zutil.h" |
|
||||||
|
|
||||||
void main __P((void)); |
|
||||||
|
|
||||||
/* This test is in honor of Ed Hamrick who suggested that the interface
|
|
||||||
to inflate be a byte at a time--this implements that, and is, of course, |
|
||||||
monumentally slow. It has the virtue though of stressing the push-pull |
|
||||||
interface for testing purposes. */ |
|
||||||
|
|
||||||
void main() |
|
||||||
{ |
|
||||||
int a, r; |
|
||||||
char c; |
|
||||||
z_stream z; |
|
||||||
|
|
||||||
z.zalloc = Z_NULL; |
|
||||||
z.zfree = Z_NULL; |
|
||||||
r = inflateInit(&z); |
|
||||||
if (r != Z_OK) |
|
||||||
fprintf(stderr, "init error: %s\n", z_errmsg[1 - r]); |
|
||||||
while ((a = getchar()) != EOF) |
|
||||||
{ |
|
||||||
/* feed one byte of input */ |
|
||||||
z.avail_out = 0; |
|
||||||
c = (char)a; |
|
||||||
z.next_in = (Byte*)&c; |
|
||||||
z.avail_in = 1; |
|
||||||
r = inflate(&z, 0); |
|
||||||
if (r == Z_STREAM_END) |
|
||||||
break; |
|
||||||
if (r != Z_OK) |
|
||||||
{ |
|
||||||
fprintf(stderr, "inflate error: %s\n", z_errmsg[1 - r]); |
|
||||||
break; |
|
||||||
} |
|
||||||
if (z.avail_in != 0) |
|
||||||
{ |
|
||||||
fprintf(stderr, "inflate didn't eat byte and didn't say buf err!\n"); |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
/* empty output one byte at a time */ |
|
||||||
while (1) |
|
||||||
{ |
|
||||||
z.next_out = (Byte*)&c; |
|
||||||
z.avail_out = 1; |
|
||||||
r = inflate(&z, 0); |
|
||||||
if (r == Z_STREAM_END) |
|
||||||
break; |
|
||||||
if (r != Z_OK && r != Z_BUF_ERROR) |
|
||||||
{ |
|
||||||
fprintf(stderr, "inflate error: %s\n", z_errmsg[1 - r]); |
|
||||||
break; |
|
||||||
} |
|
||||||
if (z.avail_out == 0) |
|
||||||
putchar(c); |
|
||||||
else |
|
||||||
break; |
|
||||||
} |
|
||||||
if (r != Z_OK && r != Z_BUF_ERROR) |
|
||||||
break; |
|
||||||
} |
|
||||||
inflateEnd(&z); |
|
||||||
fprintf(stderr, "%ld bytes in, %ld bytes out\n", z.total_in, z.total_out); |
|
||||||
if (z.msg != NULL) |
|
||||||
fprintf(stderr, "msg is <%s>\n", z.msg); |
|
||||||
} |
|
Loading…
Reference in new issue