home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume17 / freeze / part02 / freeze.h < prev    next >
C/C++ Source or Header  |  1991-03-25  |  2KB  |  122 lines

  1.  
  2. #include <stdio.h>
  3.  
  4. /* for GCC */
  5.  
  6. #ifdef SUN4
  7. #include <sys/stdtypes.h>
  8. #else
  9.   typedef int mode_t; /* for GCC */
  10. # ifndef getc
  11. #   define getc(p)         (--(p)->_cnt < 0 ? _filbuf(p) : (int) *(p)->_ptr++)
  12. # endif
  13. # ifndef putc
  14. #   define putc(x, p)      (--(p)->_cnt < 0 ? _flsbuf((unsigned char) (x), (p)) : (int) (*(p)->_ptr++ = (unsigned char) (x)))
  15. # endif
  16.   typedef unsigned short u_short;
  17. #endif
  18.  
  19. /* end (for GCC) */
  20.  
  21. #include <ctype.h>
  22. #include <signal.h>
  23. #include <sys/types.h>
  24. #include <sys/stat.h>
  25.  
  26. #ifdef DEBUG
  27. #include <assert.h>
  28. #endif
  29.  
  30. #ifdef __TURBOC__
  31. #define MSDOS
  32. #include <io.h>
  33. #endif
  34.  
  35. #ifdef MSDOS
  36. #include <stdlib.h>
  37. #endif
  38.  
  39. typedef unsigned char uchar;
  40.  
  41. #if defined(BITS) && BITS > 14
  42. typedef unsigned long hash_t;
  43. #else
  44. typedef u_short hash_t;
  45. #endif
  46.  
  47. #ifdef  lint
  48. #define N               256
  49. #else
  50. #define N               8192    /* buffer size */
  51. #endif
  52.  
  53. #define F               256     /* pre-sence buffer size */
  54. #define THRESHOLD    2
  55.  
  56. #define _NCHAR         (256 - THRESHOLD + _F + 1) /* {code : 0 .. N_CHAR-1} */
  57.  
  58. #define _T              (_NCHAR * 2 - 1)        /* size of table */
  59. #define _R              (_T - 1)                 /* root position */
  60. #define _NN             8092
  61. #define _F              256
  62.  
  63. #ifndef COMPAT
  64. #define N_CHAR          _NCHAR
  65. #define T               _T
  66. #define R               _R
  67. #else
  68. #define _FO             60
  69. #define _NO             4096
  70. #define _NCHARO        (256 - THRESHOLD + _FO + 1)
  71. #define _TO             (_NCHARO * 2 - 1)
  72. #define _RO             (_TO - 1)
  73. #define N_CHAR          (new_flg ? _NCHAR : _NCHARO)
  74. #define T               (new_flg ? _T : _TO)
  75. #define R               (new_flg ? _R : _RO)
  76. #endif
  77.  
  78. #define ENDOF           256
  79.  
  80. extern uchar   Table[];
  81.  
  82. extern long in_count, bytes_out;
  83.  
  84. extern uchar    text_buf[];
  85. extern u_short   match_position, match_length;
  86.  
  87. extern short quiet;
  88.  
  89. /* Note indicator_threshold is triangle number of Kbytes */
  90.  
  91. extern unsigned long indicator_threshold, indicator_count;
  92.  
  93. extern short do_melt, topipe;
  94.  
  95. extern uchar magic_header[];
  96.  
  97. extern int exit_stat;
  98.  
  99. extern short new_flg;
  100.  
  101. #ifdef DEBUG
  102. extern short debug;
  103. extern short verbose;
  104. extern char * pr_char();
  105. extern long symbols_out, refers_out;
  106. #endif /* DEBUG */
  107.  
  108. #ifdef GATHER_STAT
  109. extern long node_steps, node_matches;
  110. #endif
  111.  
  112. extern short DecodeChar(), DecodePosition(),
  113.          GetByte(), GetNBits();
  114.  
  115. #ifdef COMPAT
  116. extern short DecodeCOld(), DecodePOld();
  117. #endif
  118.  
  119. #if defined(BSD42) && !defined(BSD4_2)
  120. #define BSD4_2
  121. #endif
  122.