Merging upstream version 1.14.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
02cc7331f8
commit
4fbdc37ab6
24 changed files with 98 additions and 112 deletions
11
doc/clzip.1
11
doc/clzip.1
|
@ -1,15 +1,14 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH CLZIP "1" "December 2023" "clzip 1.14-rc1" "User Commands"
|
||||
.TH CLZIP "1" "January 2024" "clzip 1.14" "User Commands"
|
||||
.SH NAME
|
||||
clzip \- reduces the size of files
|
||||
.SH SYNOPSIS
|
||||
.B clzip
|
||||
[\fI\,options\/\fR] [\fI\,files\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Clzip is a C language version of lzip, fully compatible with lzip 1.4 or
|
||||
newer. As clzip is written in C, it may be easier to integrate in
|
||||
applications like package managers, embedded devices, or systems lacking a
|
||||
C++ compiler.
|
||||
Clzip is a C language version of lzip, compatible with lzip 1.4 or newer. As
|
||||
clzip is written in C, it may be easier to integrate in applications like
|
||||
package managers, embedded devices, or systems lacking a C++ compiler.
|
||||
.PP
|
||||
Lzip is a lossless data compressor with a user interface similar to the one
|
||||
of gzip or bzip2. Lzip uses a simplified form of the 'Lempel\-Ziv\-Markov
|
||||
|
@ -123,7 +122,7 @@ Report bugs to lzip\-bug@nongnu.org
|
|||
.br
|
||||
Clzip home page: http://www.nongnu.org/lzip/clzip.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2023 Antonio Diaz Diaz.
|
||||
Copyright \(co 2024 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -11,7 +11,7 @@ File: clzip.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Clzip Manual
|
||||
************
|
||||
|
||||
This manual is for Clzip (version 1.14-rc1, 20 December 2023).
|
||||
This manual is for Clzip (version 1.14, 22 January 2024).
|
||||
|
||||
* Menu:
|
||||
|
||||
|
@ -29,7 +29,7 @@ This manual is for Clzip (version 1.14-rc1, 20 December 2023).
|
|||
* Concept index:: Index of concepts
|
||||
|
||||
|
||||
Copyright (C) 2010-2023 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2024 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
@ -40,10 +40,9 @@ File: clzip.info, Node: Introduction, Next: Output, Prev: Top, Up: Top
|
|||
1 Introduction
|
||||
**************
|
||||
|
||||
Clzip is a C language version of lzip, fully compatible with lzip 1.4 or
|
||||
newer. As clzip is written in C, it may be easier to integrate in
|
||||
applications like package managers, embedded devices, or systems lacking a
|
||||
C++ compiler.
|
||||
Clzip is a C language version of lzip, compatible with lzip 1.4 or newer.
|
||||
As clzip is written in C, it may be easier to integrate in applications like
|
||||
package managers, embedded devices, or systems lacking a C++ compiler.
|
||||
|
||||
Lzip is a lossless data compressor with a user interface similar to the
|
||||
one of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov
|
||||
|
@ -464,14 +463,9 @@ method is far more difficult.
|
|||
Lzip has been designed, written, and tested with great care to replace
|
||||
gzip and bzip2 as the standard general-purpose compressed format for
|
||||
Unix-like systems. This chapter describes the lessons learned from these
|
||||
previous formats, and their application to the design of lzip.
|
||||
|
||||
Lzip is developed by volunteers who lack the resources required for
|
||||
extensive testing in all circumstances. It is up to you to test lzip before
|
||||
using it in mission-critical applications. However, a compressor like lzip
|
||||
is not a toy, and maintaining it is not a hobby. Many people's data depend
|
||||
on it. Therefore the lzip file format has been reviewed carefully and is
|
||||
believed to be free from negligent design errors.
|
||||
previous formats, and their application to the design of lzip. The lzip
|
||||
format specification has been reviewed carefully and is believed to be free
|
||||
from design errors.
|
||||
|
||||
|
||||
4.1 Format design
|
||||
|
@ -1016,8 +1010,7 @@ decoded) and 'code' (representing the current point within 'range').
|
|||
'range' is initialized to 2^32 - 1, and 'code' is initialized to 0.
|
||||
|
||||
The range encoder produces a first 0 byte that must be ignored by the
|
||||
range decoder. This is done by shifting 5 bytes in the initialization of
|
||||
'code' instead of 4. (See the 'Range_decoder' constructor in the source).
|
||||
range decoder. (See the 'Range_decoder' constructor in the source).
|
||||
|
||||
|
||||
7.4 Decoding and checking the LZMA stream
|
||||
|
@ -1197,7 +1190,7 @@ Appendix A Reference source code
|
|||
********************************
|
||||
|
||||
/* Lzd - Educational decompressor for the lzip format
|
||||
Copyright (C) 2013-2023 Antonio Diaz Diaz.
|
||||
Copyright (C) 2013-2024 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software. Redistribution and use in source and
|
||||
binary forms, with or without modification, are permitted provided
|
||||
|
@ -1368,9 +1361,9 @@ public:
|
|||
return symbol;
|
||||
}
|
||||
|
||||
unsigned decode_bit( Bit_model & bm )
|
||||
bool decode_bit( Bit_model & bm )
|
||||
{
|
||||
unsigned symbol;
|
||||
bool symbol;
|
||||
const uint32_t bound = ( range >> bit_model_total_bits ) * bm.probability;
|
||||
if( code < bound )
|
||||
{
|
||||
|
@ -1416,8 +1409,8 @@ public:
|
|||
unsigned symbol = 1;
|
||||
for( int i = 7; i >= 0; --i )
|
||||
{
|
||||
const unsigned match_bit = ( match_byte >> i ) & 1;
|
||||
const unsigned bit = decode_bit( bm[symbol+(match_bit<<8)+0x100] );
|
||||
const bool match_bit = ( match_byte >> i ) & 1;
|
||||
const bool bit = decode_bit( bm[symbol+(match_bit<<8)+0x100] );
|
||||
symbol = ( symbol << 1 ) | bit;
|
||||
if( match_bit != bit )
|
||||
{
|
||||
|
@ -1621,7 +1614,7 @@ int main( const int argc, const char * const argv[] )
|
|||
"See the lzip manual for an explanation of the code.\n"
|
||||
"\nUsage: %s [-d] < file.lz > file\n"
|
||||
"Lzd decompresses from standard input to standard output.\n"
|
||||
"\nCopyright (C) 2023 Antonio Diaz Diaz.\n"
|
||||
"\nCopyright (C) 2024 Antonio Diaz Diaz.\n"
|
||||
"License 2-clause BSD.\n"
|
||||
"This is free software: you are free to change and redistribute it.\n"
|
||||
"There is NO WARRANTY, to the extent permitted by law.\n"
|
||||
|
@ -1714,22 +1707,22 @@ Concept index
|
|||
|
||||
Tag Table:
|
||||
Node: Top205
|
||||
Node: Introduction1212
|
||||
Node: Output7342
|
||||
Node: Invoking clzip8945
|
||||
Ref: --trailing-error9823
|
||||
Node: Quality assurance19929
|
||||
Node: Algorithm29060
|
||||
Node: File format32468
|
||||
Ref: coded-dict-size33898
|
||||
Node: Stream format35129
|
||||
Ref: what-is-coded37525
|
||||
Node: Trailing data46478
|
||||
Node: Examples48816
|
||||
Ref: concat-example50266
|
||||
Node: Problems51496
|
||||
Node: Reference source code52032
|
||||
Node: Concept index67094
|
||||
Node: Introduction1207
|
||||
Node: Output7331
|
||||
Node: Invoking clzip8934
|
||||
Ref: --trailing-error9812
|
||||
Node: Quality assurance19918
|
||||
Node: Algorithm28733
|
||||
Node: File format32141
|
||||
Ref: coded-dict-size33571
|
||||
Node: Stream format34802
|
||||
Ref: what-is-coded37198
|
||||
Node: Trailing data46072
|
||||
Node: Examples48410
|
||||
Ref: concat-example49860
|
||||
Node: Problems51090
|
||||
Node: Reference source code51626
|
||||
Node: Concept index66672
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
@finalout
|
||||
@c %**end of header
|
||||
|
||||
@set UPDATED 20 December 2023
|
||||
@set VERSION 1.14-rc1
|
||||
@set UPDATED 22 January 2024
|
||||
@set VERSION 1.14
|
||||
|
||||
@dircategory Compression
|
||||
@direntry
|
||||
|
@ -51,7 +51,7 @@ This manual is for Clzip (version @value{VERSION}, @value{UPDATED}).
|
|||
@end menu
|
||||
|
||||
@sp 1
|
||||
Copyright @copyright{} 2010-2023 Antonio Diaz Diaz.
|
||||
Copyright @copyright{} 2010-2024 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
@ -63,10 +63,9 @@ distribute, and modify it.
|
|||
@cindex introduction
|
||||
|
||||
@uref{http://www.nongnu.org/lzip/clzip.html,,Clzip}
|
||||
is a C language version of lzip, fully compatible with @w{lzip 1.4} or
|
||||
newer. As clzip is written in C, it may be easier to integrate in
|
||||
applications like package managers, embedded devices, or systems lacking a
|
||||
C++ compiler.
|
||||
is a C language version of lzip, compatible with @w{lzip 1.4} or newer.
|
||||
As clzip is written in C, it may be easier to integrate in applications like
|
||||
package managers, embedded devices, or systems lacking a C++ compiler.
|
||||
|
||||
@uref{http://www.nongnu.org/lzip/lzip.html,,Lzip}
|
||||
is a lossless data compressor with a user interface similar to the one
|
||||
|
@ -516,14 +515,9 @@ method is far more difficult.@*
|
|||
Lzip has been designed, written, and tested with great care to replace gzip
|
||||
and bzip2 as the standard general-purpose compressed format for Unix-like
|
||||
systems. This chapter describes the lessons learned from these previous
|
||||
formats, and their application to the design of lzip.
|
||||
|
||||
Lzip is developed by volunteers who lack the resources required for
|
||||
extensive testing in all circumstances. It is up to you to test lzip before
|
||||
using it in mission-critical applications. However, a compressor like lzip
|
||||
is not a toy, and maintaining it is not a hobby. Many people's data depend
|
||||
on it. Therefore the lzip file format has been reviewed carefully and is
|
||||
believed to be free from negligent design errors.
|
||||
formats, and their application to the design of lzip. The lzip format
|
||||
specification has been reviewed carefully and is believed to be free from
|
||||
design errors.
|
||||
|
||||
@sp 1
|
||||
@section Format design
|
||||
|
@ -1092,9 +1086,7 @@ not yet decoded) and @samp{code} (representing the current point within
|
|||
@samp{code} is initialized to 0.
|
||||
|
||||
The range encoder produces a first 0 byte that must be ignored by the
|
||||
range decoder. This is done by shifting 5 bytes in the initialization of
|
||||
@samp{code} instead of 4. (See the @samp{Range_decoder} constructor in
|
||||
the source).
|
||||
range decoder. (See the @samp{Range_decoder} constructor in the source).
|
||||
|
||||
@sp 1
|
||||
@section Decoding and checking the LZMA stream
|
||||
|
@ -1315,7 +1307,7 @@ find by running @w{@samp{clzip --version}}.
|
|||
|
||||
@verbatim
|
||||
/* Lzd - Educational decompressor for the lzip format
|
||||
Copyright (C) 2013-2023 Antonio Diaz Diaz.
|
||||
Copyright (C) 2013-2024 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software. Redistribution and use in source and
|
||||
binary forms, with or without modification, are permitted provided
|
||||
|
@ -1486,9 +1478,9 @@ public:
|
|||
return symbol;
|
||||
}
|
||||
|
||||
unsigned decode_bit( Bit_model & bm )
|
||||
bool decode_bit( Bit_model & bm )
|
||||
{
|
||||
unsigned symbol;
|
||||
bool symbol;
|
||||
const uint32_t bound = ( range >> bit_model_total_bits ) * bm.probability;
|
||||
if( code < bound )
|
||||
{
|
||||
|
@ -1534,8 +1526,8 @@ public:
|
|||
unsigned symbol = 1;
|
||||
for( int i = 7; i >= 0; --i )
|
||||
{
|
||||
const unsigned match_bit = ( match_byte >> i ) & 1;
|
||||
const unsigned bit = decode_bit( bm[symbol+(match_bit<<8)+0x100] );
|
||||
const bool match_bit = ( match_byte >> i ) & 1;
|
||||
const bool bit = decode_bit( bm[symbol+(match_bit<<8)+0x100] );
|
||||
symbol = ( symbol << 1 ) | bit;
|
||||
if( match_bit != bit )
|
||||
{
|
||||
|
@ -1739,7 +1731,7 @@ int main( const int argc, const char * const argv[] )
|
|||
"See the lzip manual for an explanation of the code.\n"
|
||||
"\nUsage: %s [-d] < file.lz > file\n"
|
||||
"Lzd decompresses from standard input to standard output.\n"
|
||||
"\nCopyright (C) 2023 Antonio Diaz Diaz.\n"
|
||||
"\nCopyright (C) 2024 Antonio Diaz Diaz.\n"
|
||||
"License 2-clause BSD.\n"
|
||||
"This is free software: you are free to change and redistribute it.\n"
|
||||
"There is NO WARRANTY, to the extent permitted by law.\n"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue