1 /* conf.h --
2 
3    This file is part of the lzop file compressor.
4 
5    Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
6    All Rights Reserved.
7 
8    lzop and the LZO library are free software; you can redistribute them
9    and/or modify them under the terms of the GNU General Public License as
10    published by the Free Software Foundation; either version 2 of
11    the License, or (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program; see the file COPYING.
20    If not, write to the Free Software Foundation, Inc.,
21    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 
23    Markus F.X.J. Oberhumer
24    <markus@oberhumer.com>
25    http://www.oberhumer.com/opensource/lzop/
26  */
27 
28 
29 #ifndef __LZOP_CONF_H
30 #define __LZOP_CONF_H 1
31 
32 #if defined(_WIN32)
33 /* disable silly warnings about using "deprecated" POSIX functions like fopen() */
34 #ifndef _CRT_NONSTDC_NO_DEPRECATE
35 #define _CRT_NONSTDC_NO_DEPRECATE 1
36 #endif
37 #ifndef _CRT_NONSTDC_NO_WARNINGS
38 #define _CRT_NONSTDC_NO_WARNINGS 1
39 #endif
40 #ifndef _CRT_SECURE_NO_DEPRECATE
41 #define _CRT_SECURE_NO_DEPRECATE 1
42 #endif
43 #ifndef _CRT_SECURE_NO_WARNINGS
44 #define _CRT_SECURE_NO_WARNINGS 1
45 #endif
46 #endif
47 
48 #if defined(LZOP_HAVE_CONFIG_H)
49 #  include <config.h>
50 #endif
51 #if !defined(PACKAGE)
52 #  define PACKAGE "lzop"
53 #endif
54 
55 #define WITH_LZO 1
56 #if defined(WITH_LZO)
57 #if defined(HAVE_LZO_LZOCONF_H) && defined(HAVE_LZO_LZO1X_H)
58 #  include <lzo/lzoconf.h>
59 #  include <lzo/lzo1x.h>
60 #elif defined(HAVE_LZOCONF_H) && defined(HAVE_LZO1X_H)
61 #  include <lzoconf.h>
62 #  include <lzo1x.h>
63 #elif !defined(LZOP_HAVE_CONFIG_H)
64 #  include <lzo/lzoconf.h>
65 #  include <lzo/lzo1x.h>
66 #else
67 #  include <lzoconf.h>
68 #  include <lzo1x.h>
69 #endif
70 #if !defined(LZO_VERSION)
71 #  error "you need the LZO library"
72 #elif (LZO_VERSION < 0x2080) && 0
73 #  error "please upgrade your LZO package to version 2.08 or newer"
74 #endif
75 #endif
76 
77 
78 /*************************************************************************
79 //
80 **************************************************************************/
81 
82 #if defined(LZOP_HAVE_CONFIG_H)
83 #  define ACC_CONFIG_NO_HEADER 1
84 #endif
85 #define ACC_WANT_ACC_INCD_H 1
86 #define ACC_WANT_ACC_INCE_H 1
87 #define ACC_WANT_ACC_LIB_H 1
88 #include "miniacc.h"
89 #undef ACC_WANT_ACC_INCD_H
90 #undef ACC_WANT_ACC_INCE_H
91 #undef ACC_WANT_ACC_LIB_H
92 
93 /* we _always_ compile lzop with assertions on */
94 #undef NDEBUG
95 #include <assert.h>
96 
97 #if defined(acc_int64l_t)
98 #  define lzop_long_t       acc_int64l_t
99 #  define lzop_ulong_t      acc_uint64l_t
100 #else
101 #  define lzop_long_t       long int
102 #  define lzop_ulong_t      unsigned long int
103 #endif
104 
105 #if (ACC_CC_MSC && (_MSC_VER >= 1400))
106    /* avoid warnings when using "deprecated" POSIX functions */
107 #  pragma warning(disable: 4996)
108 #endif
109 
110 
111 /*************************************************************************
112 //
113 **************************************************************************/
114 
115 #if defined(ACC_OS_EMX)
116 #  define DOSISH 1
117 #  define F_OS          (_osmode == 0 ? F_OS_FAT : F_OS_OS2)
118 #  define F_CS          (_osmode == 0 ? F_CS_DOS : F_CS_NATIVE)
119 #elif (ACC_OS_DOS16 || ACC_OS_DOS32)
120 #  define DOSISH 1
121 #  define F_OS          F_OS_FAT
122 #  define F_CS          F_CS_DOS
123 #elif (ACC_OS_OS216 || ACC_OS_OS2)
124 #  define DOSISH 1
125 #  define F_OS          F_OS_OS2
126 #elif (ACC_OS_TOS)
127 #  define DOSISH 1
128 #  define F_OS          F_OS_ATARI
129 #elif (ACC_OS_WIN16)
130 #  define DOSISH 1
131 #  define F_OS          F_OS_FAT
132 #  define F_CS          F_CS_WIN16
133 #elif (ACC_OS_WIN32 || ACC_OS_WIN64 || ACC_OS_CYGWIN)
134 #  define DOSISH 1
135 #  define F_OS          F_OS_VFAT
136 #  define F_CS          F_CS_WIN32
137 #endif
138 
139 
140 #if defined(DOSISH)
141 #  define OPT_NAME_DEFAULT 1
142 #  if !defined(DIR_SEP)
143 #    define DIR_SEP         "/\\"
144 #  endif
145 #  if !defined(fn_tolower)
146 #    define fn_tolower(x)   tolower(((unsigned char)(x)))
147 #  endif
148 #endif
149 
150 #if defined(__BORLANDC__)
151 #  define SIGTYPEENTRY      __cdecl
152 #  define MODE_T            unsigned short
153 #elif defined(__DMC__)
154 #  define SIGTYPEENTRY      __cdecl
155 #elif defined(_MSC_VER)
156 #  define SIGTYPEENTRY      __cdecl
157 #  define MODE_T            unsigned short
158 #elif defined(__WATCOMC__)
159 #  define MODE_T            unsigned short
160 #endif
161 
162 
163 /*************************************************************************
164 //
165 **************************************************************************/
166 
167 #ifndef F_OS
168 #  define F_OS          F_OS_UNIX
169 #endif
170 #ifndef F_CS
171 #  define F_CS          F_CS_NATIVE
172 #endif
173 
174 #ifndef DIR_SEP
175 #  define DIR_SEP       "/"
176 #endif
177 
178 #ifndef fn_tolower
179 #  define fn_tolower(x) (x)
180 #endif
181 
182 #ifndef OPTIONS_VAR
183 #  define OPTIONS_VAR   "LZOP"
184 #endif
185 
186 
187 /*************************************************************************
188 //
189 **************************************************************************/
190 
191 #if defined(__DJGPP__)
192 #  define NO_SETMODE 1
193 #  if ((__DJGPP__ * 100 + __DJGPP_MINOR__) < 203)
194 #    error "need djgpp 2.03 or above"
195 #  endif
196 #  include <crt0.h>
197 #  include <dpmi.h>
198 #  include <sys/exceptn.h>
199 #  undef kbhit  /* want to be able to call kbhit from libc */
200 #endif
201 
202 #if defined(ACC_OS_TOS)
203 #  if defined(__MINT__)
204 #  elif (ACC_CC_PUREC || ACC_CC_TURBOC)
205 #    include <ext.h>
206 #    define O_EXCL_BROKEN 1
207 #    if !defined(S_IFMT)
208 #      if defined(S_IFREG) && defined(S_IFDIR) && defined(S_IFCHR)
209 #        define S_IFMT      (S_IFREG | S_IFDIR | S_IFCHR)
210 #      endif
211 #    endif
212 #  else
213 #    error "FIXME"
214 #  endif
215 #endif
216 
217 #define ADLER32_INIT_VALUE  1
218 #define CRC32_INIT_VALUE    0
219 
220 
221 /*************************************************************************
222 //
223 **************************************************************************/
224 
225 #if !defined(PATH_MAX)
226 #  define PATH_MAX          512
227 #elif (PATH_MAX < 512)
228 #  undef PATH_MAX
229 #  define PATH_MAX          512
230 #endif
231 
232 
233 #ifndef RETSIGTYPE
234 #  define RETSIGTYPE        void
235 #endif
236 #ifndef SIGTYPEENTRY
237 #  define SIGTYPEENTRY      /*empty*/
238 #endif
239 
240 #if !defined(MODE_T)
241 #if defined(SIZEOF_MODE_T) && (SIZEOF_MODE_T > 0)
242 #  define MODE_T            mode_t
243 #else
244 #  define MODE_T            int
245 #endif
246 #endif
247 
248 
249 #if defined(NO_MEMCMP)
250 #  undef HAVE_MEMCMP
251 #endif
252 #if !defined(HAVE_MEMCMP)
253 #  undef memcmp
254 #  define memcmp            lzo_memcmp
255 #endif
256 #if !defined(HAVE_MEMCPY)
257 #  undef memcpy
258 #  define memcpy            lzo_memcpy
259 #endif
260 #if !defined(HAVE_MEMSET)
261 #  undef memset
262 #  define memset            lzo_memset
263 #endif
264 
265 
266 #if !defined(HAVE_STRCASECMP) && defined(HAVE_STRICMP)
267 #  define strcasecmp        stricmp
268 #endif
269 #if !defined(HAVE_STRNCASECMP) && defined(HAVE_STRNICMP)
270 #  define strncasecmp       strnicmp
271 #endif
272 
273 
274 #ifndef STDIN_FILENO
275 #  define STDIN_FILENO      (fileno(stdin))
276 #endif
277 #ifndef STDOUT_FILENO
278 #  define STDOUT_FILENO     (fileno(stdout))
279 #endif
280 #ifndef STDERR_FILENO
281 #  define STDERR_FILENO     (fileno(stderr))
282 #endif
283 
284 #if !defined(S_IFMT) && defined(_S_IFMT)
285 #  define S_IFMT        _S_IFMT
286 #endif
287 #if !defined(S_IFREG) && defined(_S_IFREG)
288 #  define S_IFREG       _S_IFREG
289 #endif
290 #if !defined(S_IFDIR) && defined(_S_IFDIR)
291 #  define S_IFDIR       _S_IFDIR
292 #endif
293 #if !defined(S_IFCHR) && defined(_S_IFCHR)
294 #  define S_IFCHR       _S_IFCHR
295 #endif
296 
297 #if !defined(S_ISREG)
298 #  if defined(S_IFMT) && defined(S_IFREG)
299 #    define S_ISREG(m)  (((m) & S_IFMT) == S_IFREG)
300 #  else
301 #    error "S_ISREG"
302 #  endif
303 #endif
304 #if !defined(S_ISDIR)
305 #  if defined(S_IFMT) && defined(S_IFDIR)
306 #    define S_ISDIR(m)  (((m) & S_IFMT) == S_IFDIR)
307 #  else
308 #    error "S_ISDIR"
309 #  endif
310 #endif
311 #if !defined(S_ISCHR)
312 #  if defined(S_IFMT) && defined(S_IFCHR)
313 #    define S_ISCHR(m)  (((m) & S_IFMT) == S_IFCHR)
314 #  endif
315 #endif
316 
317 
318 /*************************************************************************
319 //
320 **************************************************************************/
321 
322 #ifndef SUFFIX_MAX
323 #define SUFFIX_MAX      32
324 #endif
325 
326 #define STDIN_NAME      "<stdin>"
327 #define STDOUT_NAME     "<stdout>"
328 #define STDERR_NAME     "<stderr>"
329 #define UNKNOWN_NAME    "<unknown>"
330 
331 
332 #define ALIGN_DOWN(a,b) (((a) / (b)) * (b))
333 #define ALIGN_UP(a,b)   ALIGN_DOWN((a) + ((b) - 1), b)
334 
335 #undef UNUSED
336 #define UNUSED(var)     ACC_UNUSED(var)
337 
338 
339 /*************************************************************************
340 //
341 **************************************************************************/
342 
343 /* exit codes of this program: 0 ok, 1 error, 2 warning */
344 #define EXIT_OK         0
345 #define EXIT_ERROR      1
346 #define EXIT_WARN       2
347 
348 #define EXIT_USAGE      1
349 #define EXIT_FILE_READ  1
350 #define EXIT_FILE_WRITE 1
351 #define EXIT_MEMORY     1
352 #define EXIT_CHECKSUM   1
353 #define EXIT_LZO_ERROR  1
354 #define EXIT_LZO_INIT   1
355 #define EXIT_INTERNAL   1
356 
357 
358 /*************************************************************************
359 // options
360 **************************************************************************/
361 
362 enum {
363     CMD_NONE,
364     CMD_COMPRESS,
365     CMD_DECOMPRESS, CMD_TEST, CMD_LIST, CMD_LS, CMD_INFO,
366     CMD_SYSINFO, CMD_LICENSE, CMD_HELP, CMD_INTRO, CMD_VERSION
367 };
368 
369 
370 enum {
371     M_LZO1X_1     =     1,
372     M_LZO1X_1_15  =     2,
373     M_LZO1X_999   =     3,
374     M_NRV1A       =  0x1a,
375     M_NRV1B       =  0x1b,
376     M_NRV2A       =  0x2a,
377     M_NRV2B       =  0x2b,
378     M_NRV2D       =  0x2d,
379     M_ZLIB        =   128,
380 
381     M_UNUSED
382 };
383 
384 extern int opt_cmd;
385 extern int opt_method;
386 extern int opt_level;
387 
388 extern int opt_checksum;
389 extern int opt_console;
390 extern int opt_crc32;
391 extern lzo_bool opt_decompress_safe;
392 extern int opt_force;
393 extern int opt_name;
394 #define MAX_NUM_THREADS 64
395 extern int opt_num_threads;
396 extern const char *opt_output_name;
397 extern lzo_bool opt_optimize;
398 extern lzo_bool opt_path;
399 extern lzo_bool opt_shortname;
400 extern int opt_stdin;
401 extern lzo_bool opt_stdout;
402 extern char opt_suffix[1+SUFFIX_MAX+1];
403 extern lzo_bool opt_unlink;
404 extern int opt_verbose;
405 
406 #define OPT_STDIN_GUESSED   1
407 #define OPT_STDIN_REQUESTED 2
408 
409 
410 /*************************************************************************
411 // input and output files
412 **************************************************************************/
413 
414 typedef struct
415 {
416     int fd;
417 #if defined(USE_FOPEN)
418     FILE *file;
419 #endif
420     int open_flags;
421     struct stat st;
422 #if defined(HAVE_LSTAT)
423     struct stat lst;
424 #endif
425     lzo_uint32 f_adler32;
426     lzo_uint32 f_crc32;
427 
428     int opt_name;
429     unsigned long part;
430     lzop_ulong_t bytes_read;
431     lzop_ulong_t bytes_written;
432     lzo_bool warn_multipart;
433     lzo_bool warn_unknown_suffix;
434 
435     lzop_ulong_t bytes_processed;
436 
437 #define FILE_T_NAME_LEN     ( 2*((PATH_MAX)+1) + SUFFIX_MAX + 1 )
438     char name[ FILE_T_NAME_LEN ];
439 }
440 file_t;
441 
442 
443 /*************************************************************************
444 // lzop file header
445 **************************************************************************/
446 
447 /* header flags */
448 #define F_ADLER32_D     0x00000001L
449 #define F_ADLER32_C     0x00000002L
450 #define F_STDIN         0x00000004L
451 #define F_STDOUT        0x00000008L
452 #define F_NAME_DEFAULT  0x00000010L
453 #define F_DOSISH        0x00000020L
454 #define F_H_EXTRA_FIELD 0x00000040L
455 #define F_H_GMTDIFF     0x00000080L
456 #define F_CRC32_D       0x00000100L
457 #define F_CRC32_C       0x00000200L
458 #define F_MULTIPART     0x00000400L
459 #define F_H_FILTER      0x00000800L
460 #define F_H_CRC32       0x00001000L
461 #define F_H_PATH        0x00002000L
462 #define F_MASK          0x00003FFFL
463 
464 /* operating system & file system that created the file [mostly unused] */
465 #define F_OS_FAT        0x00000000L         /* DOS, OS2, Win95 */
466 #define F_OS_AMIGA      0x01000000L
467 #define F_OS_VMS        0x02000000L
468 #define F_OS_UNIX       0x03000000L
469 #define F_OS_VM_CMS     0x04000000L
470 #define F_OS_ATARI      0x05000000L
471 #define F_OS_OS2        0x06000000L         /* OS2 */
472 #define F_OS_MAC9       0x07000000L
473 #define F_OS_Z_SYSTEM   0x08000000L
474 #define F_OS_CPM        0x09000000L
475 #define F_OS_TOPS20     0x0a000000L
476 #define F_OS_NTFS       0x0b000000L         /* Win NT/2000/XP */
477 #define F_OS_QDOS       0x0c000000L
478 #define F_OS_ACORN      0x0d000000L
479 #define F_OS_VFAT       0x0e000000L         /* Win32 */
480 #define F_OS_MFS        0x0f000000L
481 #define F_OS_BEOS       0x10000000L
482 #define F_OS_TANDEM     0x11000000L
483 #define F_OS_SHIFT      24
484 #define F_OS_MASK       0xff000000L
485 
486 /* character set for file name encoding [mostly unused] */
487 #define F_CS_NATIVE     0x00000000L
488 #define F_CS_LATIN1     0x00100000L
489 #define F_CS_DOS        0x00200000L
490 #define F_CS_WIN32      0x00300000L
491 #define F_CS_WIN16      0x00400000L
492 #define F_CS_UTF8       0x00500000L         /* filename is UTF-8 encoded */
493 #define F_CS_SHIFT      20
494 #define F_CS_MASK       0x00f00000L
495 
496 /* these bits must be zero */
497 #define F_RESERVED      ((F_MASK | F_OS_MASK | F_CS_MASK) ^ 0xffffffffL)
498 
499 typedef struct
500 {
501     unsigned version;
502     unsigned lib_version;
503     unsigned version_needed_to_extract;
504     unsigned char method;
505     unsigned char level;
506     lzo_uint32 flags;
507     lzo_uint32 filter;
508     lzo_uint32 mode;
509     lzo_uint32 mtime_low;
510     lzo_uint32 mtime_high;
511     lzo_uint32 header_checksum;
512 
513     lzo_uint32 extra_field_len;
514     lzo_uint32 extra_field_checksum;
515 
516 /* info */
517     const char *method_name;
518 
519     char name[255+1];
520 }
521 header_t;
522 
523 
524 /*************************************************************************
525 // lzop.c
526 **************************************************************************/
527 
528 void set_err_nl(lzo_bool x);
529 void warn(file_t *ft, const char *m);
530 void error(file_t *ft, const char *m);
531 void fatal(file_t *ft, const char *m);
532 void read_error(file_t *ft);
533 void write_error(file_t *ft);
534 void e_memory(void);
535 
536 lzo_int read_buf(file_t *ft, lzo_voidp buffer, lzo_int cnt);
537 void write_buf(file_t *ft, const lzo_voidp buffer, lzo_int cnt);
538 void read32(file_t *ft, lzo_uint32 *v);
539 void write32(file_t *ft, lzo_uint32 v);
540 
541 void init_compress_header(header_t *h, const file_t *fip, const file_t *fop);
542 void write_header(file_t *ft, const header_t *h);
543 
544 void do_test(const header_t *h, lzop_ulong_t d_len, lzop_ulong_t c_len);
545 void do_test_total(void);
546 void do_info(const header_t *h, lzop_ulong_t d_len, lzop_ulong_t c_len);
547 void do_ls(const header_t *h, lzop_ulong_t d_len, lzop_ulong_t c_len);
548 void do_list(const header_t *h, lzop_ulong_t d_len, lzop_ulong_t c_len);
549 void do_list_total(void);
550 
551 
552 /*************************************************************************
553 // compress.c
554 **************************************************************************/
555 
556 lzo_bool x_enter(const header_t *h);
557 void x_leave(const header_t *h);
558 
559 lzo_bool x_compress(file_t *fip, file_t *fop, header_t *h);
560 lzo_bool x_decompress(file_t *fip, file_t *fop, const header_t *h, lzo_bool skip);
561 
562 int x_get_method(header_t *h);
563 int x_set_method(int m, int l);
564 
565 void x_filter(lzo_bytep p, lzo_uint l, const header_t *h);
566 
567 
568 /*************************************************************************
569 // p_lzo.c
570 **************************************************************************/
571 
572 #if defined(WITH_LZO)
573 
574 lzo_bool lzo_enter(const header_t *h);
575 void lzo_leave(const header_t *h);
576 
577 lzo_bool lzo_compress(file_t *fip, file_t *fop, const header_t *h);
578 lzo_bool lzo_decompress(file_t *fip, file_t *fop, const header_t *h, lzo_bool skip);
579 
580 int lzo_get_method(header_t *h);
581 int lzo_set_method(int m, int l);
582 void lzo_init_compress_header(header_t *h);
583 
584 #endif
585 
586 
587 /*************************************************************************
588 // p_lzo_mt.c
589 **************************************************************************/
590 
591 #if defined(WITH_LZO) && defined(WITH_THREADS)
592 
593 lzo_bool lzo_threaded_enter(const header_t *h);
594 void lzo_threaded_leave(const header_t *h);
595 
596 lzo_bool lzo_threaded_compress(file_t *fip, file_t *fop, const header_t *h);
597 lzo_bool lzo_threaded_decompress(file_t *fip, file_t *fop, const header_t *h, lzo_bool skip);
598 
599 #endif
600 
601 
602 /*************************************************************************
603 // filter.c
604 **************************************************************************/
605 
606 void t_sub1(lzo_bytep p, lzo_uint l);
607 void t_add1(lzo_bytep p, lzo_uint l);
608 
609 void t_sub(lzo_bytep p, lzo_uint l, int n);
610 void t_add(lzo_bytep p, lzo_uint l, int n);
611 
612 void t_mtf(lzo_bytep p, lzo_uint l);
613 void t_unmtf(lzo_bytep p, lzo_uint l);
614 
615 
616 /*************************************************************************
617 // mblock.c
618 **************************************************************************/
619 
620 typedef struct
621 {
622     /* public */
623     lzo_bytep   mb_mem;
624     lzo_uint32  mb_size;
625     /* private */
626     lzo_bytep   mb_mem_alloc;
627     lzo_uint32  mb_size_alloc;
628     lzo_uint32  mb_align;
629 }
630 mblock_t;
631 #define mblock_p      mblock_t *
632 
633 lzo_bool mb_alloc(mblock_p m, lzo_uint32 size, lzo_uint32 align);
634 void mb_free(mblock_p m);
635 
636 
637 /*************************************************************************
638 // util.c
639 **************************************************************************/
640 
641 enum {
642     SUFF_NONE,
643     SUFF_LZO,
644     SUFF_LZOP,
645     SUFF_NRV,
646     SUFF_TAR,
647     SUFF_TNV,
648     SUFF_TZO,
649     SUFF_USER
650 };
651 
652 unsigned fn_baseindex(const char *name);
653 const char *fn_basename(const char *name);
654 void fn_addslash(char *n, lzo_bool slash);
655 char *fn_strlwr(char *n);
656 int fn_strcmp(const char *n1, const char *n2);
657 lzo_bool fn_is_same_file(const char *n1, const char *n2);
658 int fn_has_suffix(const char *name);
659 int fn_cleanpath(const char *name, char *newname, size_t size, int flags);
660 
661 time_t fix_time(time_t t);
662 time_t get_mtime(const header_t *h);
663 #if defined(HAVE_LOCALTIME)
664 void tm2str(char *s, size_t size, const struct tm *tmp);
665 #endif
666 void time2str(char *s, size_t size, const time_t *t);
667 void time2ls(char *s, size_t size, const time_t *t);
668 
669 lzo_bool file_exists(const char *name);
670 
671 lzo_uint32 fix_mode_for_header(lzo_uint32 mode);
672 MODE_T fix_mode_for_chmod(lzo_uint32 mode);
673 MODE_T fix_mode_for_ls(lzo_uint32 mode);
674 MODE_T fix_mode_for_open(MODE_T mode);
675 
676 void mode_string(MODE_T mode, char *str);
677 char *maybe_rename_file(const char *original_name);
678 
679 
680 /*************************************************************************
681 // other globals
682 **************************************************************************/
683 
684 extern const char lzop_rcsid[];
685 extern const char *progname;
686 extern MODE_T u_mask;
687 extern time_t current_time;
688 
689 void sysinfo(void);
690 void license(void);
691 void head(void);
692 void help(void);
693 void usage(void);
694 void version(void);
695 
696 void sysinfo_djgpp(void);
697 
698 
699 /*************************************************************************
700 // LZO section
701 **************************************************************************/
702 
703 #if defined(WITH_LZO)
704 
705 #define USE_LZO1X_1 1
706 #if 1
707 #  define USE_LZO1X_999 1
708 #endif
709 #if !defined(ACC_OS_DOS16)
710 #  define USE_LZO1X_1_15 1
711 #endif
712 
713 #endif /* WITH_LZO */
714 
715 
716 /*************************************************************************
717 //
718 **************************************************************************/
719 
720 #include "console.h"
721 
722 
723 #endif /* already included */
724 
725 
726 /* vim:set ts=4 sw=4 et: */
727