diff options
Diffstat (limited to 'contrib/blast/blast.h')
-rw-r--r-- | contrib/blast/blast.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/contrib/blast/blast.h b/contrib/blast/blast.h index 658cfd3..6cf65ed 100644 --- a/contrib/blast/blast.h +++ b/contrib/blast/blast.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* blast.h -- interface for blast.c | 1 | /* blast.h -- interface for blast.c |
2 | Copyright (C) 2003, 2012 Mark Adler | 2 | Copyright (C) 2003, 2012, 2013 Mark Adler |
3 | version 1.2, 24 Oct 2012 | 3 | version 1.3, 24 Aug 2013 |
4 | 4 | ||
5 | This software is provided 'as-is', without any express or implied | 5 | This software is provided 'as-is', without any express or implied |
6 | warranty. In no event will the author be held liable for any damages | 6 | warranty. In no event will the author be held liable for any damages |
@@ -42,7 +42,8 @@ typedef int (*blast_out)(void *how, unsigned char *buf, unsigned len); | |||
42 | */ | 42 | */ |
43 | 43 | ||
44 | 44 | ||
45 | int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow); | 45 | int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow, |
46 | unsigned *left, unsigned char **in); | ||
46 | /* Decompress input to output using the provided infun() and outfun() calls. | 47 | /* Decompress input to output using the provided infun() and outfun() calls. |
47 | * On success, the return value of blast() is zero. If there is an error in | 48 | * On success, the return value of blast() is zero. If there is an error in |
48 | * the source data, i.e. it is not in the proper format, then a negative value | 49 | * the source data, i.e. it is not in the proper format, then a negative value |
@@ -55,12 +56,19 @@ int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow); | |||
55 | * an input error. (blast() only asks for input if it needs it.) inhow is for | 56 | * an input error. (blast() only asks for input if it needs it.) inhow is for |
56 | * use by the application to pass an input descriptor to infun(), if desired. | 57 | * use by the application to pass an input descriptor to infun(), if desired. |
57 | * | 58 | * |
59 | * If left and in are not NULL and *left is not zero when blast() is called, | ||
60 | * then the *left bytes are *in are consumed for input before infun() is used. | ||
61 | * | ||
58 | * The output function is invoked: err = outfun(how, buf, len), where the bytes | 62 | * The output function is invoked: err = outfun(how, buf, len), where the bytes |
59 | * to be written are buf[0..len-1]. If err is not zero, then blast() returns | 63 | * to be written are buf[0..len-1]. If err is not zero, then blast() returns |
60 | * with an output error. outfun() is always called with len <= 4096. outhow | 64 | * with an output error. outfun() is always called with len <= 4096. outhow |
61 | * is for use by the application to pass an output descriptor to outfun(), if | 65 | * is for use by the application to pass an output descriptor to outfun(), if |
62 | * desired. | 66 | * desired. |
63 | * | 67 | * |
68 | * If there is any unused input, *left is set to the number of bytes that were | ||
69 | * read and *in points to them. Otherwise *left is set to zero and *in is set | ||
70 | * to NULL. If left or in are NULL, then they are not set. | ||
71 | * | ||
64 | * The return codes are: | 72 | * The return codes are: |
65 | * | 73 | * |
66 | * 2: ran out of input before completing decompression | 74 | * 2: ran out of input before completing decompression |