X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=trees.c;h=a1a7737729161e80fc9adc27131b8688f15b1222;hb=46d3ec2adf4667cbcb6b2181512c45d2fbca85dc;hp=8ee3b988ac77ba4622cb50ba79820646c0eb905b;hpb=d9a513aab586c69e2b87b3ed1fa12b22c5632e4f;p=debian%2Fgzip diff --git a/trees.c b/trees.c index 8ee3b98..a1a7737 100644 --- a/trees.c +++ b/trees.c @@ -1,8 +1,21 @@ /* trees.c -- output deflated data using Huffman coding - * 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) 1997-1999, 2009-2012 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 3, 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 @@ -59,10 +72,6 @@ #include "tailor.h" #include "gzip.h" -#ifdef RCSID -static char rcsid[] = "$Id$"; -#endif - /* =========================================================================== * Constants */ @@ -277,8 +286,8 @@ local off_t compressed_len; /* total bit length of compressed file */ local off_t input_len; /* total byte length of input file */ /* input_len is for debugging only since we can get it by other means. */ -ush *file_type; /* pointer to UNKNOWN, BINARY or ASCII */ -int *file_method; /* pointer to DEFLATE or STORE */ +static ush *file_type; /* pointer to UNKNOWN, BINARY or ASCII */ +static int *file_method; /* pointer to DEFLATE or STORE */ #ifdef DEBUG extern off_t bits_sent; /* bit length of the compressed data */ @@ -291,17 +300,17 @@ extern unsigned near strstart; /* window offset of current string */ * Local (static) routines in this file. */ -local void init_block OF((void)); -local void pqdownheap OF((ct_data near *tree, int k)); -local void gen_bitlen OF((tree_desc near *desc)); -local void gen_codes OF((ct_data near *tree, int max_code)); -local void build_tree OF((tree_desc near *desc)); -local void scan_tree OF((ct_data near *tree, int max_code)); -local void send_tree OF((ct_data near *tree, int max_code)); -local int build_bl_tree OF((void)); -local void send_all_trees OF((int lcodes, int dcodes, int blcodes)); -local void compress_block OF((ct_data near *ltree, ct_data near *dtree)); -local void set_file_type OF((void)); +local void init_block (void); +local void pqdownheap (ct_data near *tree, int k); +local void gen_bitlen (tree_desc near *desc); +local void gen_codes (ct_data near *tree, int max_code); +local void build_tree (tree_desc near *desc); +local void scan_tree (ct_data near *tree, int max_code); +local void send_tree (ct_data near *tree, int max_code); +local int build_bl_tree (void); +local void send_all_trees (int lcodes, int dcodes, int blcodes); +local void compress_block (ct_data near *ltree, ct_data near *dtree); +local void set_file_type (void); #ifndef DEBUG @@ -342,7 +351,7 @@ void ct_init(attr, methodp) file_type = attr; file_method = methodp; compressed_len = input_len = 0L; - + if (static_dtree[0].Len != 0) return; /* ct_init already called */ /* Initialize the mapping length (0..255) -> length code (0..28) */ @@ -896,7 +905,8 @@ off_t flush_block(buf, stored_len, eof) if (stored_len <= opt_lenb && eof && compressed_len == 0L && seekable()) { #endif /* Since LIT_BUFSIZE <= 2*WSIZE, the input data must be there: */ - if (buf == (char*)0) error ("block vanished"); + if (!buf) + gzip_error ("block vanished"); copy_block(buf, (unsigned)stored_len, 0); /* without header */ compressed_len = stored_len << 3;