1
0
Fork 0

Adding upstream version 1.16.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-21 11:21:20 +01:00
parent dd83f83a63
commit 15503a1dcd
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
23 changed files with 113 additions and 96 deletions

View file

@ -1,19 +1,10 @@
2014-07-01 Antonio Diaz Diaz <antonio@gnu.org> 2014-08-29 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.16-rc1 released. * Version 1.16 released.
* License changed to GPL version 2 or later.
2014-05-25 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.16-pre2 released.
* New class LZ_mtester makes repair much faster. * New class LZ_mtester makes repair much faster.
2014-04-05 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.16-pre1 released.
* main.cc (close_and_set_permissions): Behave like 'cp -p'. * main.cc (close_and_set_permissions): Behave like 'cp -p'.
* Minor improvements.
* lziprecover.texinfo: Renamed to lziprecover.texi. * lziprecover.texinfo: Renamed to lziprecover.texi.
* License changed to GPL version 2 or later.
2013-09-14 Antonio Diaz Diaz <antonio@gnu.org> 2013-09-14 Antonio Diaz Diaz <antonio@gnu.org>
@ -100,7 +91,7 @@
* testsuite/unzcrash.cc: Test all 1-byte errors. * testsuite/unzcrash.cc: Test all 1-byte errors.
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This file is a collection of facts, and thus it is not copyrightable, 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 but just in case, you have unlimited permission to copy, distribute and

View file

@ -1,7 +1,7 @@
Requirements Requirements
------------ ------------
You will need a C++ compiler. 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. standards compliant compiler.
Gcc is available at http://gcc.gnu.org. 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 5. Type 'make install' to install the program and any data files and
documentation. 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' typing 'make install-bin', 'make install-info' or 'make install-man'
respectively. respectively.
@ -58,7 +58,7 @@ After running 'configure', you can run 'make' and 'make install' as
explained above. explained above.
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy, This file is free documentation: you have unlimited permission to copy,
distribute and modify it. distribute and modify it.

7
README
View file

@ -24,6 +24,11 @@ into account both data integrity and decoder availability:
* Additionally lzip is copylefted, which guarantees that it will * Additionally lzip is copylefted, which guarantees that it will
remain free forever. 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.
Lziprecover is able to recover or decompress files produced by any of Lziprecover is able to recover or decompress files produced by any of
the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip
and pdlzip. and pdlzip.
@ -67,7 +72,7 @@ unzcrash.c from Julian Seward's bzip2. Type 'make unzcrash' in the
lziprecover source directory to build it. Then try 'unzcrash --help'. lziprecover source directory to build it. Then try 'unzcrash --help'.
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy, This file is free documentation: you have unlimited permission to copy,
distribute and modify it. distribute and modify it.

View file

@ -1,6 +1,5 @@
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version) /* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Copyright (C) 2006-2014 Antonio Diaz Diaz.
Antonio Diaz Diaz.
This library is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,5 @@
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version) /* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Copyright (C) 2006-2014 Antonio Diaz Diaz.
Antonio Diaz Diaz.
This library is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

10
configure vendored
View file

@ -1,12 +1,12 @@
#! /bin/sh #! /bin/sh
# configure script for Lziprecover - Data recovery tool for lzip files # configure script for Lziprecover - Data recovery tool for the lzip format
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. # Copyright (C) 2009-2014 Antonio Diaz Diaz.
# #
# This configure script is free software: you have unlimited permission # This configure script is free software: you have unlimited permission
# to copy, distribute and modify it. # to copy, distribute and modify it.
pkgname=lziprecover pkgname=lziprecover
pkgversion=1.16-rc1 pkgversion=1.16
progname=lziprecover progname=lziprecover
srctrigger=doc/${pkgname}.texi srctrigger=doc/${pkgname}.texi
@ -164,8 +164,8 @@ echo "CXXFLAGS = ${CXXFLAGS}"
echo "LDFLAGS = ${LDFLAGS}" echo "LDFLAGS = ${LDFLAGS}"
rm -f Makefile rm -f Makefile
cat > Makefile << EOF cat > Makefile << EOF
# Makefile for Lziprecover - Data recovery tool for lzip files # Makefile for Lziprecover - Data recovery tool for the lzip format
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. # Copyright (C) 2009-2014 Antonio Diaz Diaz.
# This file was generated automatically by configure. Do not edit. # This file was generated automatically by configure. Do not edit.
# #
# This Makefile is free software: you have unlimited permission # This Makefile is free software: you have unlimited permission

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -278,7 +278,7 @@ int LZ_decoder::decode_member( const Pretty_print & pp )
{ {
rep0 += rdec.decode( direct_bits - dis_align_bits ) << dis_align_bits; rep0 += rdec.decode( direct_bits - dis_align_bits ) << dis_align_bits;
rep0 += rdec.decode_tree_reversed4( bm_align ); rep0 += rdec.decode_tree_reversed4( bm_align );
if( rep0 == 0xFFFFFFFFU ) // Marker found if( rep0 == 0xFFFFFFFFU ) // marker found
{ {
rep0 = rep0_saved; rep0 = rep0_saved;
rdec.normalize(); rdec.normalize();

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.37.1. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
.TH LZIPRECOVER "1" "July 2014" "lziprecover 1.16-rc1" "User Commands" .TH LZIPRECOVER "1" "August 2014" "lziprecover 1.16" "User Commands"
.SH NAME .SH NAME
lziprecover \- recovers data from damaged lzip files lziprecover \- recovers data from damaged lzip files
.SH SYNOPSIS .SH SYNOPSIS
.B lziprecover .B lziprecover
[\fIoptions\fR] [\fIfiles\fR] [\fI\,options\/\fR] [\fI\,files\/\fR]
.SH DESCRIPTION .SH DESCRIPTION
Lziprecover \- Data recovery tool and decompressor for lzip files. Lziprecover \- Data recovery tool and decompressor for the lzip format.
.SH OPTIONS .SH OPTIONS
.TP .TP
\fB\-h\fR, \fB\-\-help\fR \fB\-h\fR, \fB\-\-help\fR

View file

@ -3,7 +3,7 @@ lziprecover.texi.
INFO-DIR-SECTION Data Compression INFO-DIR-SECTION Data Compression
START-INFO-DIR-ENTRY START-INFO-DIR-ENTRY
* Lziprecover: (lziprecover). Data recovery tool for lzip files * Lziprecover: (lziprecover). Data recovery tool for the lzip format
END-INFO-DIR-ENTRY END-INFO-DIR-ENTRY
 
@ -12,7 +12,7 @@ File: lziprecover.info, Node: Top, Next: Introduction, Up: (dir)
Lziprecover Manual Lziprecover Manual
****************** ******************
This manual is for Lziprecover (version 1.16-rc1, 1 July 2014). This manual is for Lziprecover (version 1.16, 29 August 2014).
* Menu: * Menu:
@ -27,7 +27,7 @@ This manual is for Lziprecover (version 1.16-rc1, 1 July 2014).
* Concept index:: Index of concepts * Concept index:: Index of concepts
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This manual is free documentation: you have unlimited permission to This manual is free documentation: you have unlimited permission to
copy, distribute and modify it. copy, distribute and modify it.
@ -62,6 +62,11 @@ into account both data integrity and decoder availability:
* Additionally lzip is copylefted, which guarantees that it will * Additionally lzip is copylefted, which guarantees that it will
remain free forever. 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.
Lziprecover is able to recover or decompress files produced by any of Lziprecover is able to recover or decompress files produced by any of
the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip
and pdlzip. and pdlzip.
@ -257,7 +262,7 @@ corruption.
Bit-flip happens when one bit in the file is changed from 0 to 1 or Bit-flip happens when one bit in the file is changed from 0 to 1 or
vice versa. It may be caused by bad RAM or even by natural radiation. I vice versa. It may be caused by bad RAM or even by natural radiation. I
have seen a case of bit-flip in a file stored in an USB flash drive. have seen a case of bit-flip in a file stored on an USB flash drive.
Repairing a file can take some time. Small files or files with the Repairing a file can take some time. Small files or files with the
error located near the beginning can be repaired in a few seconds. But error located near the beginning can be repaired in a few seconds. But
@ -496,9 +501,15 @@ programs with a suitable command line syntax.
values for each byte. 'N-bit error' means any value differing from values for each byte. 'N-bit error' means any value differing from
the original value in N bit positions, not a value differing from the original value in N bit positions, not a value differing from
the original value in the bit position N. the original value in the bit position N.
The number of N-bit errors per byte (N = 1 to 8) is: 8 28 56 70 56 The number of N-bit errors per byte (N = 1 to 8) is:
28 8 1 8 28 56 70 56 28 8 1
Examples of RANGE: 1 1,2,3 1-4 1,3-5,8 1-3,5-8
Examples of RANGE Tests errors of N-bit
1 1
1,2,3 1, 2 and 3
2-4 2, 3 and 4
1,3-5,8 1, 3, 4, 5 and 8
1-3,5-8 1, 2, 3, 5, 6, 7 and 8
'-p BYTES' '-p BYTES'
'--position=BYTES' '--position=BYTES'
@ -560,17 +571,17 @@ Concept index
 
Tag Table: Tag Table:
Node: Top226 Node: Top231
Node: Introduction1098 Node: Introduction1077
Node: Invoking lziprecover3856 Node: Invoking lziprecover4105
Node: Repairing files9294 Node: Repairing files9543
Node: Merging files10484 Node: Merging files10733
Node: File format12255 Node: File format12504
Node: Examples14765 Node: Examples15014
Ref: ddrescue-example15966 Ref: ddrescue-example16215
Node: Unzcrash17075 Node: Unzcrash17324
Node: Problems19447 Node: Problems19876
Node: Concept index19997 Node: Concept index20426
 
End Tag Table End Tag Table

View file

@ -6,19 +6,19 @@
@finalout @finalout
@c %**end of header @c %**end of header
@set UPDATED 1 July 2014 @set UPDATED 29 August 2014
@set VERSION 1.16-rc1 @set VERSION 1.16
@dircategory Data Compression @dircategory Data Compression
@direntry @direntry
* Lziprecover: (lziprecover). Data recovery tool for lzip files * Lziprecover: (lziprecover). Data recovery tool for the lzip format
@end direntry @end direntry
@ifnothtml @ifnothtml
@titlepage @titlepage
@title Lziprecover @title Lziprecover
@subtitle Data recovery tool for lzip files @subtitle Data recovery tool for the lzip format
@subtitle for Lziprecover version @value{VERSION}, @value{UPDATED} @subtitle for Lziprecover version @value{VERSION}, @value{UPDATED}
@author by Antonio Diaz Diaz @author by Antonio Diaz Diaz
@ -47,8 +47,7 @@ This manual is for Lziprecover (version @value{VERSION}, @value{UPDATED}).
@end menu @end menu
@sp 1 @sp 1
Copyright @copyright{} 2009, 2010, 2011, 2012, 2013, 2014 Copyright @copyright{} 2009-2014 Antonio Diaz Diaz.
Antonio Diaz Diaz.
This manual is free documentation: you have unlimited permission This manual is free documentation: you have unlimited permission
to copy, distribute and modify it. to copy, distribute and modify it.
@ -87,6 +86,11 @@ Additionally lzip is copylefted, which guarantees that it will remain
free forever. free forever.
@end itemize @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.
Lziprecover is able to recover or decompress files produced by any of Lziprecover is able to recover or decompress files produced by any of
the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip
and pdlzip. and pdlzip.
@ -287,7 +291,7 @@ forms of data corruption.
Bit-flip happens when one bit in the file is changed from 0 to 1 or vice Bit-flip happens when one bit in the file is changed from 0 to 1 or vice
versa. It may be caused by bad RAM or even by natural radiation. I have versa. It may be caused by bad RAM or even by natural radiation. I have
seen a case of bit-flip in a file stored in an USB flash drive. seen a case of bit-flip in a file stored on an USB flash drive.
Repairing a file can take some time. Small files or files with the error Repairing a file can take some time. Small files or files with the error
located near the beginning can be repaired in a few seconds. But located near the beginning can be repaired in a few seconds. But
@ -564,8 +568,17 @@ Test N-bit errors only, instead of testing all the 255 wrong values for
each byte. @samp{N-bit error} means any value differing from the each byte. @samp{N-bit error} means any value differing from the
original value in N bit positions, not a value differing from the original value in N bit positions, not a value differing from the
original value in the bit position N.@* original value in the bit position N.@*
The number of N-bit errors per byte (N = 1 to 8) is: 8 28 56 70 56 28 8 1@* The number of N-bit errors per byte (N = 1 to 8) is:
Examples of @var{range}: 1 1,2,3 1-4 1,3-5,8 1-3,5-8 @w{8 28 56 70 56 28 8 1}
@multitable {Examples of @var{range}} {1, 2, 3, 5, 6, 7 and 8}
@item Examples of @var{range} @tab Tests errors of N-bit
@item 1 @tab 1
@item 1,2,3 @tab 1, 2 and 3
@item 2-4 @tab 2, 3 and 4
@item 1,3-5,8 @tab 1, 3, 4, 5 and 8
@item 1-3,5-8 @tab 1, 2, 3, 5, 6, 7 and 8
@end multitable
@item -p @var{bytes} @item -p @var{bytes}
@itemx --position=@var{bytes} @itemx --position=@var{bytes}

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -69,7 +69,7 @@ File_index::File_index( const int infd )
: isize( lseek( infd, 0, SEEK_END ) ), retval_( 0 ) : isize( lseek( infd, 0, SEEK_END ) ), retval_( 0 )
{ {
if( isize < 0 ) if( isize < 0 )
{ set_errno_error( "Input file is not seekable :" ); return; } { set_errno_error( "Input file is not seekable: " ); return; }
if( isize < min_member_size ) if( isize < min_member_size )
{ error_ = "Input file is too short."; retval_ = 2; return; } { error_ = "Input file is too short."; retval_ = 2; return; }
if( isize > INT64_MAX ) if( isize > INT64_MAX )
@ -78,7 +78,7 @@ File_index::File_index( const int infd )
File_header header; File_header header;
if( seek_read( infd, header.data, File_header::size, 0 ) != File_header::size ) if( seek_read( infd, header.data, File_header::size, 0 ) != File_header::size )
{ set_errno_error( "Error reading member header :" ); return; } { set_errno_error( "Error reading member header: " ); return; }
if( !header.verify_magic() ) if( !header.verify_magic() )
{ error_ = "Bad magic number (file not in lzip format)."; { error_ = "Bad magic number (file not in lzip format).";
retval_ = 2; return; } retval_ = 2; return; }
@ -92,7 +92,7 @@ File_index::File_index( const int infd )
File_trailer trailer; File_trailer trailer;
if( seek_read( infd, trailer.data, File_trailer::size, if( seek_read( infd, trailer.data, File_trailer::size,
pos - File_trailer::size ) != File_trailer::size ) pos - File_trailer::size ) != File_trailer::size )
{ set_errno_error( "Error reading member trailer :" ); break; } { set_errno_error( "Error reading member trailer: " ); break; }
const long long member_size = trailer.member_size(); const long long member_size = trailer.member_size();
if( member_size < min_member_size || member_size > pos ) if( member_size < min_member_size || member_size > pos )
{ {
@ -103,7 +103,7 @@ File_index::File_index( const int infd )
} }
if( seek_read( infd, header.data, File_header::size, if( seek_read( infd, header.data, File_header::size,
pos - member_size ) != File_header::size ) pos - member_size ) != File_header::size )
{ set_errno_error( "Error reading member header :" ); break; } { set_errno_error( "Error reading member header: " ); break; }
if( !header.verify_magic() || !header.verify_version() ) if( !header.verify_magic() || !header.verify_version() )
{ {
if( member_vector.empty() ) // maybe trailing garbage if( member_vector.empty() ) // maybe trailing garbage
@ -149,7 +149,7 @@ File_index::File_index( const std::vector< int > & infd_vector,
: isize( fsize ), retval_( 0 ) : isize( fsize ), retval_( 0 )
{ {
if( isize < 0 ) if( isize < 0 )
{ set_errno_error( "Input file is not seekable :" ); return; } { set_errno_error( "Input file is not seekable: " ); return; }
if( isize < min_member_size ) if( isize < min_member_size )
{ error_ = "Input file is too short."; retval_ = 2; return; } { error_ = "Input file is too short."; retval_ = 2; return; }
if( isize > INT64_MAX ) if( isize > INT64_MAX )
@ -163,7 +163,7 @@ File_index::File_index( const std::vector< int > & infd_vector,
{ {
const int infd = infd_vector[i]; const int infd = infd_vector[i];
if( seek_read( infd, header.data, File_header::size, 0 ) != File_header::size ) if( seek_read( infd, header.data, File_header::size, 0 ) != File_header::size )
{ set_errno_error( "Error reading member header :" ); return; } { set_errno_error( "Error reading member header: " ); return; }
if( header.verify_magic() && header.verify_version() ) done = true; if( header.verify_magic() && header.verify_version() ) done = true;
} }
if( !done ) if( !done )
@ -181,7 +181,7 @@ File_index::File_index( const std::vector< int > & infd_vector,
const int tfd = infd_vector[it]; const int tfd = infd_vector[it];
if( seek_read( tfd, trailer.data, File_trailer::size, if( seek_read( tfd, trailer.data, File_trailer::size,
pos - File_trailer::size ) != File_trailer::size ) pos - File_trailer::size ) != File_trailer::size )
{ set_errno_error( "Error reading member trailer :" ); goto error; } { set_errno_error( "Error reading member trailer: " ); goto error; }
member_size = trailer.member_size(); member_size = trailer.member_size();
if( member_size >= min_member_size && member_size <= pos ) if( member_size >= min_member_size && member_size <= pos )
for( int ih = 0; ih < files && !done; ++ih ) for( int ih = 0; ih < files && !done; ++ih )
@ -189,7 +189,7 @@ File_index::File_index( const std::vector< int > & infd_vector,
const int hfd = infd_vector[ih]; const int hfd = infd_vector[ih];
if( seek_read( hfd, header.data, File_header::size, if( seek_read( hfd, header.data, File_header::size,
pos - member_size ) != File_header::size ) pos - member_size ) != File_header::size )
{ set_errno_error( "Error reading member header :" ); goto error; } { set_errno_error( "Error reading member header: " ); goto error; }
if( header.verify_magic() && header.verify_version() ) done = true; if( header.verify_magic() && header.verify_version() ) done = true;
} }
} }

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

4
lzip.h
View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -91,7 +91,7 @@ bool delete_output_on_interrupt = false;
void show_help() void show_help()
{ {
std::printf( "%s - Data recovery tool and decompressor for lzip files.\n", Program_name ); std::printf( "%s - Data recovery tool and decompressor for the lzip format.\n", Program_name );
std::printf( "\nUsage: %s [options] [files]\n", invocation_name ); std::printf( "\nUsage: %s [options] [files]\n", invocation_name );
std::printf( "\nOptions:\n" std::printf( "\nOptions:\n"
" -h, --help display this help and exit\n" " -h, --help display this help and exit\n"

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -139,7 +139,7 @@ int LZ_mtester::test_member( const long pos_limit )
{ {
rep0 += rdec.decode( direct_bits - dis_align_bits ) << dis_align_bits; rep0 += rdec.decode( direct_bits - dis_align_bits ) << dis_align_bits;
rep0 += rdec.decode_tree_reversed4( bm_align ); rep0 += rdec.decode_tree_reversed4( bm_align );
if( rep0 == 0xFFFFFFFFU ) // Marker found if( rep0 == 0xFFFFFFFFU ) // marker found
{ {
rep0 = rep0_saved; rep0 = rep0_saved;
rdec.normalize(); rdec.normalize();

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Lziprecover - Data recovery tool for lzip files /* Lziprecover - Data recovery tool for the lzip format
Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. Copyright (C) 2009-2014 Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# check script for Lziprecover - Data recovery tool for lzip files # check script for Lziprecover - Data recovery tool for the lzip format
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz. # Copyright (C) 2009-2014 Antonio Diaz Diaz.
# #
# This script is free software: you have unlimited permission # This script is free software: you have unlimited permission
# to copy, distribute and modify it. # to copy, distribute and modify it.

View file

@ -1,7 +1,6 @@
/* Unzcrash - Tests robustness of decompressors to corrupted data. /* Unzcrash - Tests robustness of decompressors to corrupted data.
Inspired by unzcrash.c from Julian Seward's bzip2. Inspired by unzcrash.c from Julian Seward's bzip2.
Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Copyright (C) 2008-2014 Antonio Diaz Diaz.
Antonio Diaz Diaz.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by