Commit my improvement on Rodney Brown's patch to g(un)zip, decreasing

binary size.
This commit is contained in:
Aaron Lehmann
2001-12-06 03:22:43 +00:00
parent 249f39a265
commit b9df470c4d
5 changed files with 104 additions and 105 deletions

View File

@@ -174,15 +174,6 @@ typedef int file_t; /* Do not use stdio */
#define put_byte(c) {outbuf[outcnt++]=(uch)(c); if (outcnt==OUTBUFSIZ)\
flush_outbuf();}
/* Output a 16 bit value, lsb first */
#define put_short(w) \
{ if (outcnt < OUTBUFSIZ-2) { \
outbuf[outcnt++] = (uch) ((w) & 0xff); \
outbuf[outcnt++] = (uch) ((ush)(w) >> 8); \
} else { \
put_short_when_full(w); \
} \
}
/* Output a 32 bit value to the bit stream, lsb first */
#if 0
@@ -247,9 +238,6 @@ static int (*read_buf) (char *buf, unsigned size);
/* from util.c: */
static void flush_outbuf (void);
static void put_short_when_full (ush);
/* lzw.h -- define the lzw functions.
* Copyright (C) 1992-1993 Jean-loup Gailly.
* This is free software; you can redistribute it and/or modify it under the
@@ -336,6 +324,19 @@ static int ofd; /* output file descriptor */
static unsigned insize; /* valid bytes in inbuf */
static unsigned outcnt; /* bytes in output buffer */
/* Output a 16 bit value, lsb first */
static void put_short(ush w)
{
if (outcnt < OUTBUFSIZ-2) {
outbuf[outcnt++] = (uch) ((w) & 0xff);
outbuf[outcnt++] = (uch) ((ush)(w) >> 8);
} else {
put_byte((uch)((w) & 0xff));
put_byte((uch)((ush)(w) >> 8));
}
}
/* ========================================================================
* Signal and error handler.
*/
@@ -1481,7 +1482,7 @@ static const extra_bits_t extra_blbits[BL_CODES]
* if we rely on DIST_BUFSIZE == LIT_BUFSIZE.
*/
#if LIT_BUFSIZE > INBUFSIZ
error cannot overlay l_buf and inbuf
#error cannot overlay l_buf and inbuf
#endif
#define REP_3_6 16
/* repeat previous bit length 3-6 times (2 bits of repeat count) */
@@ -2462,21 +2463,10 @@ static void set_file_type()
static ulg crc; /* crc on uncompressed file data */
static long header_bytes; /* number of bytes in gzip header */
static void put_short_when_full(ush w)
{
put_byte((uch)((w) & 0xff));
put_byte((uch)((ush)(w) >> 8));
}
static void put_short_function(ush n)
{
put_short(n);
}
static void put_long(ulg n)
{
put_short_function((n) & 0xffff);
put_short_function(((ulg)(n)) >> 16);
put_short((n) & 0xffff);
put_short(((ulg)(n)) >> 16);
}
/* put_header_byte is used for the compressed output