/* trees.c -- output deflated data using Huffman coding
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1997-1999, 2009-2018 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)
+ 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,
* void ct_tally (int dist, int lc);
* Save the match info and tally the frequency counts.
*
- * off_t flush_block (char *buf, ulg stored_len, int pad, int eof)
+ * off_t flush_block (char *buf, ulg stored_len, int eof)
* Determine the best encoding for the current block: dynamic trees,
* static trees or store, and output the encoded block to the zip
- * file. If pad is set, pads the block to the next
- * byte. Returns the total compressed length for the file so
- * far.
- * */
+ * file. Returns the total compressed length for the file so far.
+ *
+ */
#include <config.h>
#include <ctype.h>
#include "tailor.h"
#include "gzip.h"
-#ifdef RCSID
-static char rcsid[] = "$Id: trees.c,v 1.4 2006/11/20 08:40:33 eggert Exp $";
-#endif
-
/* ===========================================================================
* Constants
*/
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 */
* 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
if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
/* If compression failed and this is the first and last block,
- * and if the zip file can be seeked (to rewrite the local header),
+ * and if we can seek through the zip file (to rewrite the local header),
* the whole file is transformed into a stored file:
*/
#ifdef FORCE_METHOD
if (stored_len <= opt_lenb && eof && compressed_len == 0L && seekable()) {
#endif
/* Since LIT_BUFSIZE <= 2*WSIZE, the input data must be there: */
- if (!buf)
- gzip_error ("block vanished");
+ if (!buf)
+ gzip_error ("block vanished");
copy_block(buf, (unsigned)stored_len, 0); /* without header */
compressed_len = stored_len << 3;