diff options
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | INSTALL | 7 | ||||
-rw-r--r-- | README | 13 | ||||
-rw-r--r-- | arg_parser.cc | 3 | ||||
-rw-r--r-- | arg_parser.h | 3 | ||||
-rwxr-xr-x | configure | 8 | ||||
-rw-r--r-- | decoder.cc | 3 | ||||
-rw-r--r-- | decoder.h | 3 | ||||
-rw-r--r-- | doc/lzip.1 | 6 | ||||
-rw-r--r-- | doc/lzip.info | 35 | ||||
-rw-r--r-- | doc/lzip.texi | 19 | ||||
-rw-r--r-- | encoder.cc | 3 | ||||
-rw-r--r-- | encoder.h | 3 | ||||
-rw-r--r-- | fast_encoder.cc | 3 | ||||
-rw-r--r-- | fast_encoder.h | 14 | ||||
-rw-r--r-- | lzip.h | 3 | ||||
-rw-r--r-- | main.cc | 3 | ||||
-rwxr-xr-x | testsuite/check.sh | 3 | ||||
-rw-r--r-- | testsuite/test.txt.lz | bin | 7392 -> 7376 bytes |
19 files changed, 73 insertions, 78 deletions
@@ -1,21 +1,13 @@ -2014-06-30 Antonio Diaz Diaz <antonio@gnu.org> +2014-08-26 Antonio Diaz Diaz <antonio@gnu.org> - * Version 1.16-rc1 released. - * License changed to GPL version 2 or later. - -2014-05-16 Antonio Diaz Diaz <antonio@gnu.org> - - * Version 1.16-pre2 released. + * Version 1.16 released. * Compression ratio of option '-9' has been slightly increased. + * Compression time has been reduced by 4%. * Compression time of option '-0' has been reduced by 2%. - -2014-01-11 Antonio Diaz Diaz <antonio@gnu.org> - - * Version 1.16-pre1 released. * main.cc (close_and_set_permissions): Behave like 'cp -p'. - * Compression time has been reduced by 4%. * Minor improvements. * lzip.texinfo: Renamed to lzip.texi. + * License changed to GPL version 2 or later. 2013-09-20 Antonio Diaz Diaz <antonio@gnu.org> @@ -249,8 +241,7 @@ * Version 0.1 released. -Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -Antonio Diaz Diaz. +Copyright (C) 2008-2014 Antonio Diaz Diaz. This file is a collection of facts, and thus it is not copyrightable, but just in case, you have unlimited permission to copy, distribute and @@ -1,7 +1,7 @@ Requirements ------------ You will need a C++ compiler. -I use gcc 4.8.1 and 3.3.6, but the code should compile with any +I use gcc 4.9.1 and 3.3.6, but the code should compile with any standards compliant compiler. Gcc is available at http://gcc.gnu.org. @@ -32,7 +32,7 @@ the main archive. 5. Type 'make install' to install the program and any data files and documentation. - You can install only the program, the info manual or the man page + You can install only the program, the info manual or the man page by typing 'make install-bin', 'make install-info' or 'make install-man' respectively. @@ -54,8 +54,7 @@ After running 'configure', you can run 'make' and 'make install' as explained above. -Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -Antonio Diaz Diaz. +Copyright (C) 2008-2014 Antonio Diaz Diaz. This file is free documentation: you have unlimited permission to copy, distribute and modify it. @@ -3,7 +3,7 @@ Description Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip is about as fast as gzip, compresses most files more than bzip2, and is better than both from a data recovery -perspective. Lzip is a clean implementation of the LZMA algorithm. +perspective. Lzip is a clean implementation of the LZMA "algorithm". The lzip file format is designed for long-term data archiving, taking into account both data integrity and decoder availability: @@ -24,9 +24,15 @@ into account both data integrity and decoder availability: * Additionally lzip is copylefted, which guarantees that it will remain free forever. +A nice feature of the lzip format is that a corrupt byte is easier to +repair the nearer it is from the beginning of the file. Therefore, with +the help of lziprecover, losing an entire archive just because of a +corrupt byte near the beginning is a thing of the past. + Lzip uses the same well-defined exit status values used by bzip2, which makes it safer than compressors returning ambiguous warning values (like -gzip) when it is used as a back end for tar or zutils. +gzip) when it is used as a back end for other programs like tar or +zutils. Lzip will automatically use the smallest possible dictionary size for each file without exceeding the given limit. Keep in mind that the @@ -95,8 +101,7 @@ range encoding), Igor Pavlov (for putting all the above together in LZMA), and Julian Seward (for bzip2's CLI). -Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -Antonio Diaz Diaz. +Copyright (C) 2008-2014 Antonio Diaz Diaz. This file is free documentation: you have unlimited permission to copy, distribute and modify it. diff --git a/arg_parser.cc b/arg_parser.cc index ef4bbd0..74f9298 100644 --- a/arg_parser.cc +++ b/arg_parser.cc @@ -1,6 +1,5 @@ /* Arg_parser - POSIX/GNU command line argument parser. (C++ version) - Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2006-2014 Antonio Diaz Diaz. This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/arg_parser.h b/arg_parser.h index 1b88f62..d80c353 100644 --- a/arg_parser.h +++ b/arg_parser.h @@ -1,6 +1,5 @@ /* Arg_parser - POSIX/GNU command line argument parser. (C++ version) - Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2006-2014 Antonio Diaz Diaz. This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1,13 +1,12 @@ #! /bin/sh # configure script for Lzip - LZMA lossless data compressor -# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -# Antonio Diaz Diaz. +# Copyright (C) 2008-2014 Antonio Diaz Diaz. # # This configure script is free software: you have unlimited permission # to copy, distribute and modify it. pkgname=lzip -pkgversion=1.16-rc1 +pkgversion=1.16 progname=lzip srctrigger=doc/${pkgname}.texi @@ -166,8 +165,7 @@ echo "LDFLAGS = ${LDFLAGS}" rm -f Makefile cat > Makefile << EOF # Makefile for Lzip - LZMA lossless data compressor -# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -# Antonio Diaz Diaz. +# Copyright (C) 2008-2014 Antonio Diaz Diaz. # This file was generated automatically by configure. Do not edit. # # This Makefile is free software: you have unlimited permission @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.37.1. -.TH LZIP "1" "June 2014" "lzip 1.16-rc1" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1. +.TH LZIP "1" "August 2014" "lzip 1.16" "User Commands" .SH NAME lzip \- reduces the size of files .SH SYNOPSIS .B lzip -[\fIoptions\fR] [\fIfiles\fR] +[\fI\,options\/\fR] [\fI\,files\/\fR] .SH DESCRIPTION Lzip \- LZMA lossless data compressor. .SH OPTIONS diff --git a/doc/lzip.info b/doc/lzip.info index c3324a5..a2d18bc 100644 --- a/doc/lzip.info +++ b/doc/lzip.info @@ -11,7 +11,7 @@ File: lzip.info, Node: Top, Next: Introduction, Up: (dir) Lzip Manual *********** -This manual is for Lzip (version 1.16-rc1, 30 June 2014). +This manual is for Lzip (version 1.16, 26 August 2014). * Menu: @@ -26,8 +26,7 @@ This manual is for Lzip (version 1.16-rc1, 30 June 2014). * Concept index:: Index of concepts - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz -Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. This manual is free documentation: you have unlimited permission to copy, distribute and modify it. @@ -42,7 +41,7 @@ Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip is about as fast as gzip, compresses most files more than bzip2, and is better than both from a data recovery perspective. Lzip is a clean implementation of the LZMA -(Lempel-Ziv-Markov chain-Algorithm) algorithm. +(Lempel-Ziv-Markov chain-Algorithm) "algorithm". The lzip file format is designed for long-term data archiving, taking into account both data integrity and decoder availability: @@ -63,6 +62,11 @@ into account both data integrity and decoder availability: * Additionally lzip is copylefted, which guarantees that it will remain free forever. + A nice feature of the lzip format is that a corrupt byte is easier to +repair the nearer it is from the beginning of the file. Therefore, with +the help of lziprecover, losing an entire archive just because of a +corrupt byte near the beginning is a thing of the past. + The member trailer stores the 32-bit CRC of the original data, the size of the original data and the size of the member. These values, together with the value remaining in the range decoder and the @@ -77,7 +81,8 @@ uncompressed data. Lzip uses the same well-defined exit status values used by bzip2, which makes it safer than compressors returning ambiguous warning -values (like gzip) when it is used as a back end for tar or zutils. +values (like gzip) when it is used as a back end for other programs +like tar or zutils. The amount of memory required for compression is about 1 or 2 times the dictionary size limit (1 if input file size is less than dictionary @@ -996,7 +1001,7 @@ public: pos( 0 ), stream_pos( 0 ), crc_( 0xFFFFFFFFU ) - { buffer[dictionary_size-1] = 0; } // prev_byte of first_byte + { buffer[dictionary_size-1] = 0; } // prev_byte of first byte ~LZ_decoder() { delete[] buffer; } @@ -1212,15 +1217,15 @@ Concept index Tag Table: Node: Top208 -Node: Introduction1055 -Node: Algorithm5733 -Node: Invoking lzip8491 -Node: File format14167 -Node: Stream format16715 -Node: Examples26147 -Node: Problems28104 -Node: Reference source code28634 -Node: Concept index42151 +Node: Introduction1022 +Node: Algorithm5992 +Node: Invoking lzip8750 +Node: File format14426 +Node: Stream format16974 +Node: Examples26406 +Node: Problems28363 +Node: Reference source code28893 +Node: Concept index42410 End Tag Table diff --git a/doc/lzip.texi b/doc/lzip.texi index 3209e15..037dd6e 100644 --- a/doc/lzip.texi +++ b/doc/lzip.texi @@ -6,8 +6,8 @@ @finalout @c %**end of header -@set UPDATED 30 June 2014 -@set VERSION 1.16-rc1 +@set UPDATED 26 August 2014 +@set VERSION 1.16 @dircategory Data Compression @direntry @@ -47,8 +47,7 @@ This manual is for Lzip (version @value{VERSION}, @value{UPDATED}). @end menu @sp 1 -Copyright @copyright{} 2008, 2009, 2010, 2011, 2012, 2013, 2014 -Antonio Diaz Diaz. +Copyright @copyright{} 2008-2014 Antonio Diaz Diaz. This manual is free documentation: you have unlimited permission to copy, distribute and modify it. @@ -62,7 +61,7 @@ Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip is about as fast as gzip, compresses most files more than bzip2, and is better than both from a data recovery perspective. Lzip is a clean implementation of the LZMA -(Lempel-Ziv-Markov chain-Algorithm) algorithm. +(Lempel-Ziv-Markov chain-Algorithm) "algorithm". The lzip file format is designed for long-term data archiving, taking into account both data integrity and decoder availability: @@ -88,6 +87,11 @@ Additionally lzip is copylefted, which guarantees that it will remain free forever. @end itemize +A nice feature of the lzip format is that a corrupt byte is easier to +repair the nearer it is from the beginning of the file. Therefore, with +the help of lziprecover, losing an entire archive just because of a +corrupt byte near the beginning is a thing of the past. + The member trailer stores the 32-bit CRC of the original data, the size of the original data and the size of the member. These values, together with the value remaining in the range decoder and the end-of-stream @@ -101,7 +105,8 @@ wrong. It can't help you recover the original uncompressed data. Lzip uses the same well-defined exit status values used by bzip2, which makes it safer than compressors returning ambiguous warning values (like -gzip) when it is used as a back end for tar or zutils. +gzip) when it is used as a back end for other programs like tar or +zutils. The amount of memory required for compression is about 1 or 2 times the dictionary size limit (1 if input file size is less than dictionary size @@ -1069,7 +1074,7 @@ public: pos( 0 ), stream_pos( 0 ), crc_( 0xFFFFFFFFU ) - { buffer[dictionary_size-1] = 0; } // prev_byte of first_byte + { buffer[dictionary_size-1] = 0; } // prev_byte of first byte ~LZ_decoder() { delete[] buffer; } @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 diff --git a/fast_encoder.cc b/fast_encoder.cc index aca9570..9642e54 100644 --- a/fast_encoder.cc +++ b/fast_encoder.cc @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 diff --git a/fast_encoder.h b/fast_encoder.h index e968f64..e37ad7f 100644 --- a/fast_encoder.h +++ b/fast_encoder.h @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 @@ -50,10 +49,13 @@ public: { while( --n >= 0 ) { - key4 = ( ( key4 << 4 ) ^ buffer[pos+3] ) & key4_mask; - const int newpos = prev_positions[key4]; - prev_positions[key4] = pos + 1; - pos_array[cyclic_pos] = newpos; + if( available_bytes() >= 4 ) + { + key4 = ( ( key4 << 4 ) ^ buffer[pos+3] ) & key4_mask; + const int newpos = prev_positions[key4]; + prev_positions[key4] = pos + 1; + pos_array[cyclic_pos] = newpos; + } move_pos(); } } @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 @@ -1,6 +1,5 @@ /* Lzip - LZMA lossless data compressor - Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 - Antonio Diaz Diaz. + Copyright (C) 2008-2014 Antonio Diaz Diaz. 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 diff --git a/testsuite/check.sh b/testsuite/check.sh index 7ce7a10..1f9b9e4 100755 --- a/testsuite/check.sh +++ b/testsuite/check.sh @@ -1,7 +1,6 @@ #! /bin/sh # check script for Lzip - LZMA lossless data compressor -# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 -# Antonio Diaz Diaz. +# Copyright (C) 2008-2014 Antonio Diaz Diaz. # # This script is free software: you have unlimited permission # to copy, distribute and modify it. diff --git a/testsuite/test.txt.lz b/testsuite/test.txt.lz Binary files differindex 46f98a7..41d2e39 100644 --- a/testsuite/test.txt.lz +++ b/testsuite/test.txt.lz |