/* lzh.h */ /* Synchronet LZH compression library */ /* $Id$ */ /**************************************************************************** * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * * Rob Swindell's conversion of 1988 LZH (LHarc) encoding functions * * Based on Japanese version 29-NOV-1988 * * LZSS coded by Haruhiko Okumura * * Adaptive Huffman Coding coded by Haruyasu Yoshizaki * * * * Anonymous FTP access to the most recent released source is available at * * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * * * * Anonymous CVS access to the development source and modification history * * is available at cvs.synchro.net:/cvsroot/sbbs, example: * * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login * * (just hit return, no password is necessary) * * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src * * * * For Synchronet coding style and modification guidelines, see * * http://www.synchro.net/source.html * * * * You are encouraged to submit any modifications (preferably in Unix diff * * format) via e-mail to mods@synchro.net * * * * Note: If this box doesn't appear square, then you need to fix your tabs. * ****************************************************************************/ #include #ifdef LZHEXPORT #undef LZHEXPORT #endif #ifdef _WIN32 #ifndef __FLAT__ #define __FLAT__ #endif #ifdef __BORLANDC__ #define LZHCALL __stdcall #else #define LZHCALL #endif #ifdef LZHDLL /* LZH functions in DLL */ #ifdef LZH_EXPORTS #define LZHEXPORT __declspec( dllexport ) #else #define LZHEXPORT __declspec( dllimport ) #endif #else /* self-contained executable */ #define LZHEXPORT #endif #elif defined(__unix__) || defined(__GNUC__) #ifndef __FLAT__ #define __FLAT__ #endif #define LZHCALL #define LZHEXPORT #else /* !_WIN32 */ #define LZHCALL #define LZHEXPORT #endif #ifdef __cplusplus extern "C" { #endif LZHEXPORT int32_t LZHCALL lzh_encode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf); LZHEXPORT int32_t LZHCALL lzh_decode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf); #ifdef __cplusplus } #endif #ifdef __WATCOMC__ /* Use MSC standard (prepended underscore) */ #pragma aux lzh_encode "_*" #pragma aux lzh_decode "_*" #endif