| 1 | 
 /* puff.h | 
 
 
 
 
 
 | 2 | 
   Copyright (C) 2002-2013 Mark Adler, all rights reserved | 
 
 
 
 
 
 | 3 | 
   version 2.3, 21 Jan 2013 | 
 
 
 
 
 
 | 4 | 
  | 
 
 
 
 
 
 | 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 | 
 
 
 
 
 
 | 7 | 
   arising from the use of this software. | 
 
 
 
 
 
 | 8 | 
  | 
 
 
 
 
 
 | 9 | 
   Permission is granted to anyone to use this software for any purpose, | 
 
 
 
 
 
 | 10 | 
   including commercial applications, and to alter it and redistribute it | 
 
 
 
 
 
 | 11 | 
   freely, subject to the following restrictions: | 
 
 
 
 
 
 | 12 | 
  | 
 
 
 
 
 
 | 13 | 
   1. The origin of this software must not be misrepresented; you must not | 
 
 
 
 
 
 | 14 | 
      claim that you wrote the original software. If you use this software | 
 
 
 
 
 
 | 15 | 
      in a product, an acknowledgment in the product documentation would be | 
 
 
 
 
 
 | 16 | 
      appreciated but is not required. | 
 
 
 
 
 
 | 17 | 
   2. Altered source versions must be plainly marked as such, and must not be | 
 
 
 
 
 
 | 18 | 
      misrepresented as being the original software. | 
 
 
 
 
 
 | 19 | 
   3. This notice may not be removed or altered from any source distribution. | 
 
 
 
 
 
 | 20 | 
  | 
 
 
 
 
 
 | 21 | 
   Mark Adler    madler@alumni.caltech.edu | 
 
 
 
 
 
 | 22 | 
  */ | 
 
 
 
 
 
 | 23 | 
  | 
 
 
 
 
 
 | 24 | 
  | 
 
 
 
 
 
 | 25 | 
 /* | 
 
 
 
 
 
 | 26 | 
  * See puff.c for purpose and usage. | 
 
 
 
 
 
 | 27 | 
  */ | 
 
 
 
 
 
 | 28 | 
 #ifndef NIL | 
 
 
 
 
 
 | 29 | 
 #  define NIL ((unsigned char *)0)      /* for no output option */ | 
 
 
 
 
 
 | 30 | 
 #endif | 
 
 
 
 
 
 | 31 | 
  | 
 
 
 
 
 
 | 32 | 
 int puff(unsigned char *dest,           /* pointer to destination pointer */ | 
 
 
 
 
 
 | 33 | 
          unsigned long *destlen,        /* amount of output space */ | 
 
 
 
 
 
 | 34 | 
          const unsigned char *source,   /* pointer to source data pointer */ | 
 
 
 
 
 
 | 35 | 
          unsigned long *sourcelen);     /* amount of input available */ |