X-Git-Url: https://git.cworth.org/git?p=gzip;a=blobdiff_plain;f=deflate.c;h=629e8d7f9bcade3c7aa826aef7f702bda8a13015;hp=bc4c8d4f571982948f9fb37d64e9b7bf15dd67c6;hb=e7921f54c622e3b32e525f345bc34308821e4ae0;hpb=c9eb602f6f5c10a521e7274640033f6a35deca1d diff --git a/deflate.c b/deflate.c index bc4c8d4..629e8d7 100644 --- a/deflate.c +++ b/deflate.c @@ -1,8 +1,21 @@ /* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1992-1993 Jean-loup Gailly - * This is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License, see the file COPYING. - */ + + Copyright (C) 1999, 2006 Free Software Foundation, Inc. + Copyright (C) 1992-1993 Jean-loup Gailly + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* * PURPOSE @@ -69,7 +82,7 @@ #include "lzw.h" /* just for consistency checking */ #ifdef RCSID -static char rcsid[] = "$Id: deflate.c,v 0.15 1993/06/24 10:53:53 jloup Exp $"; +static char rcsid[] = "$Id: deflate.c,v 1.5 2006/12/07 23:53:00 eggert Exp $"; #endif /* =========================================================================== @@ -300,7 +313,7 @@ void lm_init (pack_level, flags) { register unsigned j; - if (pack_level < 1 || pack_level > 9) error("bad pack level"); + if (pack_level < 1 || pack_level > 9) gzip_error ("bad pack level"); compr_level = pack_level; /* Initialize the hash table. */ @@ -509,7 +522,7 @@ local void check_match(start, match, length) fprintf(stderr, " start %d, match %d, length %d\n", start, match, length); - error("invalid match"); + gzip_error ("invalid match"); } if (verbose > 1) { fprintf(stderr,"\\[%d,%d]", start-match, length); @@ -643,8 +656,8 @@ local off_t deflate_fast() /* Find the longest match, discarding those <= prev_length. * At this point we have always match_length < MIN_MATCH */ - if (hash_head != NIL && strstart - hash_head <= MAX_DIST && - strstart <= window_size - MIN_LOOKAHEAD) { + if (hash_head != NIL && strstart - hash_head <= MAX_DIST + && strstart <= window_size - MIN_LOOKAHEAD) { /* To simplify the code, we prevent matches with the string * of window index 0 (in particular we have to avoid a match * of the string with itself at the start of the input file). @@ -675,7 +688,7 @@ local off_t deflate_fast() * the next lookahead bytes will be emitted as literals. */ } while (--match_length != 0); - strstart++; + strstart++; } else { strstart += match_length; match_length = 0; @@ -691,7 +704,7 @@ local off_t deflate_fast() flush = ct_tally (0, window[strstart]); RSYNC_ROLL(strstart, 1); lookahead--; - strstart++; + strstart++; } if (rsync && strstart > rsync_chunk_end) { rsync_chunk_end = 0xFFFFFFFFUL; @@ -739,7 +752,7 @@ off_t deflate() if (hash_head != NIL && prev_length < max_lazy_match && strstart - hash_head <= MAX_DIST && - strstart <= window_size - MIN_LOOKAHEAD) { + strstart <= window_size - MIN_LOOKAHEAD) { /* To simplify the code, we prevent matches with the string * of window index 0 (in particular we have to avoid a match * of the string with itself at the start of the input file).