From f9017027ecdfd732b688165216c6250b7ec2f128 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 7 Nov 2015 11:05:13 +0100 Subject: Adding upstream version 1.16. Signed-off-by: Daniel Baumann --- ChangeLog | 19 +++++-------------- INSTALL | 7 +++---- README | 13 +++++++++---- arg_parser.cc | 3 +-- arg_parser.h | 3 +-- configure | 8 +++----- decoder.cc | 3 +-- decoder.h | 3 +-- doc/lzip.1 | 6 +++--- doc/lzip.info | 35 ++++++++++++++++++++--------------- doc/lzip.texi | 19 ++++++++++++------- encoder.cc | 3 +-- encoder.h | 3 +-- fast_encoder.cc | 3 +-- fast_encoder.h | 14 ++++++++------ lzip.h | 3 +-- main.cc | 3 +-- testsuite/check.sh | 3 +-- testsuite/test.txt.lz | Bin 7392 -> 7376 bytes 19 files changed, 73 insertions(+), 78 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8a1871..6f1ac88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,21 +1,13 @@ -2014-06-30 Antonio Diaz Diaz +2014-08-26 Antonio Diaz Diaz - * Version 1.16-rc1 released. - * License changed to GPL version 2 or later. - -2014-05-16 Antonio Diaz Diaz - - * 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 - - * 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 @@ -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 diff --git a/INSTALL b/INSTALL index 054d156..2da3542 100644 --- a/INSTALL +++ b/INSTALL @@ -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. diff --git a/README b/README index 294142b..356c5e9 100644 --- a/README +++ b/README @@ -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 diff --git a/configure b/configure index 15677ea..0483e78 100755 --- a/configure +++ b/configure @@ -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 diff --git a/decoder.cc b/decoder.cc index fba62c2..0784011 100644 --- a/decoder.cc +++ b/decoder.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/decoder.h b/decoder.h index 94fe481..623e19b 100644 --- a/decoder.h +++ b/decoder.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 diff --git a/doc/lzip.1 b/doc/lzip.1 index 33ce098..0c4ed50 100644 --- a/doc/lzip.1 +++ b/doc/lzip.1 @@ -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; } diff --git a/encoder.cc b/encoder.cc index 15529de..0d34ad1 100644 --- a/encoder.cc +++ b/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/encoder.h b/encoder.h index 3a9c026..6f50da7 100644 --- a/encoder.h +++ b/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 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(); } } diff --git a/lzip.h b/lzip.h index 4f3e8e8..4cad6fa 100644 --- a/lzip.h +++ b/lzip.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 diff --git a/main.cc b/main.cc index a0cd299..dd1fb27 100644 --- a/main.cc +++ b/main.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/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 index 46f98a7..41d2e39 100644 Binary files a/testsuite/test.txt.lz and b/testsuite/test.txt.lz differ -- cgit v1.2.3