]> wimlib.net Git - wimlib/blobdiff - src/comp.h
Remove more trailing whitespace
[wimlib] / src / comp.h
index af17826310e093f9b3a668731cdb66167f54c73a..a40dbca0f7ab5ef33e7e6a6602fd067ddcfc350a 100644 (file)
@@ -2,23 +2,6 @@
  * comp.h
  *
  * Functions useful for compression, mainly bitstreams.
- *
- * Copyright (C) 2012 Eric Biggers
- *
- * wimlib - Library for working with WIM files 
- *
- * This library is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along
- * with this library; if not, write to the Free Software Foundation, Inc., 59
- * Temple Place, Suite 330, Boston, MA 02111-1307 USA 
  */
 
 #ifndef _WIMLIB_COMP_H
@@ -52,9 +35,9 @@ struct output_bitstream {
 
 
 static inline int bitstream_put_byte(struct output_bitstream *ostream,
-                                     u8 n)
+                                    u8 n)
 {
-       if (ostream->num_bytes_remaining == 0)
+       if (ostream->num_bytes_remaining < 1)
                return 1;
        *ostream->output = n;
        ostream->output++;
@@ -63,11 +46,11 @@ static inline int bitstream_put_byte(struct output_bitstream *ostream,
 }
 
 static inline int bitstream_put_two_bytes(struct output_bitstream *ostream,
-                                          u16 n)
+                                         u16 n)
 {
        if (ostream->num_bytes_remaining < 2)
                return 1;
-       *(u16*)ostream->output = to_le16(n);
+       *(u16*)ostream->output = cpu_to_le16(n);
        ostream->output += 2;
        ostream->num_bytes_remaining -= 2;
        return 0;
@@ -83,26 +66,30 @@ struct lz_params {
        uint max_lazy_match;
        uint too_far;
 };
-                                               
+
 typedef uint (*lz_record_match_t)(uint, uint, void *, void *);
 typedef uint (*lz_record_literal_t)(u8, void *);
 
-extern uint lz_analyze_block(const u8 uncompressed_data[], 
+extern uint lz_analyze_block(const u8 uncompressed_data[],
                             uint uncompressed_len,
-                            u32 match_tab[], 
+                            u32 match_tab[],
                             lz_record_match_t record_match,
-                            lz_record_literal_t record_literal, 
+                            lz_record_literal_t record_literal,
                             void *record_match_arg1,
-                            void *record_match_arg2, 
+                            void *record_match_arg2,
                             void *record_literal_arg,
                             const struct lz_params *params);
 
-extern int bitstream_put_bits(struct output_bitstream *ostream, 
+extern int bitstream_put_bits(struct output_bitstream *ostream,
                              output_bitbuf_t bits, unsigned num_bits);
 
 extern void init_output_bitstream(struct output_bitstream *ostream,
-                                               void *data, unsigned num_bytes);
+                                 void *data, unsigned num_bytes);
 
 extern int flush_output_bitstream(struct output_bitstream *ostream);
 
+extern void make_canonical_huffman_code(uint num_syms, uint max_codeword_len,
+                                       const u32 freq_tab[], u8 lens[],
+                                       u16 codewords[]);
+
 #endif /* _WIMLIB_COMP_H */