summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--NEWS2
-rw-r--r--README5
-rwxr-xr-xconfigure4
-rw-r--r--decoder.c11
-rw-r--r--decoder.h6
-rw-r--r--doc/clzip.15
-rw-r--r--doc/clzip.info21
-rw-r--r--doc/clzip.texinfo9
-rw-r--r--main.c7
10 files changed, 48 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index a1bb0fd..327c7e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,19 +1,8 @@
-2010-03-13 Antonio Diaz Diaz <ant_diaz@teleline.es>
+2010-04-05 Antonio Diaz Diaz <ant_diaz@teleline.es>
- * Version 1.0-rc3 released.
- * decoder.h: Input_buffer integrated in Range_decoder.
-
-2010-02-21 Antonio Diaz Diaz <ant_diaz@teleline.es>
-
- * Version 1.0-rc2 released.
- * Code cleanup.
- * clzip.h: Fixed warnings produced by over-optimization (-O3).
-
-2010-02-14 Antonio Diaz Diaz <ant_diaz@teleline.es>
-
- * Version 1.0-rc1 released.
+ * Version 1.0 released.
* Initial release.
- * Translated to C from the C++ source for lzip 1.10-rc1.
+ * Translated to C from the C++ source for lzip 1.10.
Copyright (C) 2010 Antonio Diaz Diaz.
diff --git a/NEWS b/NEWS
index 1ce6a12..f68b1ca 100644
--- a/NEWS
+++ b/NEWS
@@ -2,4 +2,4 @@ Changes in version 1.0:
Initial release.
-Translated to C from the C++ source for lzip 1.10-rc3.
+Translated to C from the C++ source for lzip 1.10.
diff --git a/README b/README
index 69257c5..24f3146 100644
--- a/README
+++ b/README
@@ -6,6 +6,11 @@ gzip or bzip2. Clzip decompresses almost as fast as gzip and compresses
better than bzip2, which makes it well suited for software distribution
and data archiving.
+Clzip uses the lzip file format; the files produced by clzip are fully
+compatible with lzip-1.4 or newer. Clzip is in fact a C language version
+of lzip, intended for embedded devices or systems lacking a C++
+compiler.
+
Clzip replaces every file given in the command line with a compressed
version of itself, with the name "original_name.lz". Each compressed
file has the same modification date, permissions, and, when possible,
diff --git a/configure b/configure
index 4a77e1c..d1179aa 100755
--- a/configure
+++ b/configure
@@ -5,12 +5,12 @@
# This configure script is free software: you have unlimited permission
# to copy, distribute and modify it.
#
-# Date of this version: 2010-03-13
+# Date of this version: 2010-04-05
args=
no_create=
pkgname=clzip
-pkgversion=1.0-rc3
+pkgversion=1.0
progname=clzip
srctrigger=clzip.h
diff --git a/decoder.c b/decoder.c
index 0d00219..349fc8a 100644
--- a/decoder.c
+++ b/decoder.c
@@ -63,7 +63,7 @@ bool LZd_verify_trailer( struct LZ_decoder * const decoder,
struct Pretty_print * const pp )
{
File_trailer trailer;
- const int trailer_size = Ft_versioned_size( decoder->format_version );
+ const int trailer_size = Ft_versioned_size( decoder->member_version );
const long long member_size = LZd_member_position( decoder ) + trailer_size;
bool error = false;
@@ -83,7 +83,7 @@ bool LZd_verify_trailer( struct LZ_decoder * const decoder,
for( ; i < trailer_size; ++i ) trailer[i] = 0;
}
}
- if( decoder->format_version == 0 ) Ft_set_member_size( trailer, member_size );
+ if( decoder->member_version == 0 ) Ft_set_member_size( trailer, member_size );
if( !Rd_code_is_zero( decoder->range_decoder ) )
{
error = true;
@@ -153,10 +153,11 @@ int LZd_decode_member( struct LZ_decoder * const decoder,
{
const uint8_t prev_byte = LZd_get_byte( decoder, 0 );
if( St_is_char( state ) )
- LZd_put_byte( decoder, Lid_decode( &decoder->literal_decoder, decoder->range_decoder, prev_byte ) );
+ LZd_put_byte( decoder, Lid_decode( &decoder->literal_decoder,
+ decoder->range_decoder, prev_byte ) );
else
- LZd_put_byte( decoder, Lid_decode_matched( &decoder->literal_decoder, decoder->range_decoder, prev_byte,
- LZd_get_byte( decoder, rep0 ) ) );
+ LZd_put_byte( decoder, Lid_decode_matched( &decoder->literal_decoder,
+ decoder->range_decoder, prev_byte, LZd_get_byte( decoder, rep0 ) ) );
St_set_char( &state );
}
else
diff --git a/decoder.h b/decoder.h
index 1bb773c..a4a111f 100644
--- a/decoder.h
+++ b/decoder.h
@@ -43,7 +43,7 @@ static inline void Rd_init( struct Range_decoder * const rdec, const int infd )
rdec->pos = 0;
rdec->stream_pos = 0;
rdec->code = 0;
- rdec->range = 0xFFFFFFFF;
+ rdec->range = 0xFFFFFFFFU;
rdec->infd_ = infd;
rdec->at_stream_end = false;
}
@@ -242,7 +242,7 @@ static inline uint8_t Lid_decode_matched( struct Literal_decoder * const literal
struct LZ_decoder
{
long long partial_data_pos;
- int format_version;
+ int member_version;
int dictionary_size;
int buffer_size;
uint8_t * buffer;
@@ -313,7 +313,7 @@ static inline void LZd_init( struct LZ_decoder * const decoder,
struct Range_decoder * const rdec, const int outfd )
{
decoder->partial_data_pos = 0;
- decoder->format_version = Fh_version( header );
+ decoder->member_version = Fh_version( header );
decoder->dictionary_size = Fh_get_dictionary_size( header );
decoder->buffer_size = max( 65536, decoder->dictionary_size );
decoder->buffer = (uint8_t *)malloc( decoder->buffer_size );
diff --git a/doc/clzip.1 b/doc/clzip.1
index f259dfa..25c509e 100644
--- a/doc/clzip.1
+++ b/doc/clzip.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
-.TH CLZIP "1" "March 2010" "Clzip 1.0-rc3" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.37.1.
+.TH CLZIP "1" "April 2010" "Clzip 1.0" "User Commands"
.SH NAME
Clzip \- data compressor based on the LZMA algorithm
.SH SYNOPSIS
@@ -66,6 +66,7 @@ Numbers may be followed by a multiplier: k = kB = 10^3 = 1000,
Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc...
.SH "REPORTING BUGS"
Report bugs to lzip\-bug@nongnu.org
+.br
Clzip home page: http://www.nongnu.org/lzip/clzip.html
.SH COPYRIGHT
Copyright \(co 2010 Antonio Diaz Diaz.
diff --git a/doc/clzip.info b/doc/clzip.info
index a98e8e5..2bab8b6 100644
--- a/doc/clzip.info
+++ b/doc/clzip.info
@@ -12,7 +12,7 @@ File: clzip.info, Node: Top, Next: Introduction, Up: (dir)
Clzip Manual
************
-This manual is for Clzip (version 1.0-rc3, 13 March 2010).
+This manual is for Clzip (version 1.0, 5 April 2010).
* Menu:
@@ -42,6 +42,11 @@ gzip or bzip2. Clzip decompresses almost as fast as gzip and compresses
better than bzip2, which makes it well suited for software distribution
and data archiving.
+ Clzip uses the lzip file format; the files produced by clzip are
+fully compatible with lzip-1.4 or newer. Clzip is in fact a C language
+version of lzip, intended for embedded devices or systems lacking a C++
+compiler.
+
Clzip replaces every file given in the command line with a compressed
version of itself, with the name "original_name.lz". Each compressed
file has the same modification date, permissions, and, when possible,
@@ -432,12 +437,12 @@ Concept Index

Tag Table:
Node: Top226
-Node: Introduction835
-Node: Algorithm4160
-Node: Invoking Clzip6391
-Node: File Format10747
-Node: Examples12703
-Node: Problems13880
-Node: Concept Index14406
+Node: Introduction830
+Node: Algorithm4377
+Node: Invoking Clzip6608
+Node: File Format10964
+Node: Examples12920
+Node: Problems14097
+Node: Concept Index14623

End Tag Table
diff --git a/doc/clzip.texinfo b/doc/clzip.texinfo
index 2a2e586..acdd3bc 100644
--- a/doc/clzip.texinfo
+++ b/doc/clzip.texinfo
@@ -5,8 +5,8 @@
@finalout
@c %**end of header
-@set UPDATED 13 March 2010
-@set VERSION 1.0-rc3
+@set UPDATED 5 April 2010
+@set VERSION 1.0
@dircategory Data Compression
@direntry
@@ -58,6 +58,11 @@ gzip or bzip2. Clzip decompresses almost as fast as gzip and compresses
better than bzip2, which makes it well suited for software distribution
and data archiving.
+Clzip uses the lzip file format; the files produced by clzip are fully
+compatible with lzip-1.4 or newer. Clzip is in fact a C language version
+of lzip, intended for embedded devices or systems lacking a C++
+compiler.
+
Clzip replaces every file given in the command line with a compressed
version of itself, with the name "original_name.lz". Each compressed
file has the same modification date, permissions, and, when possible,
diff --git a/main.c b/main.c
index 77cb1f6..167c2b7 100644
--- a/main.c
+++ b/main.c
@@ -82,6 +82,7 @@ enum Mode { m_compress = 0, m_decompress, m_test };
char * output_filename = 0;
int outfd = -1;
+mode_t outfd_mode = S_IRUSR | S_IWUSR;
bool delete_output_on_interrupt = false;
@@ -320,8 +321,7 @@ static bool open_outstream( const bool force )
int flags = O_CREAT | O_WRONLY | o_binary;
if( force ) flags |= O_TRUNC; else flags |= O_EXCL;
- outfd = open( output_filename, flags,
- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH );
+ outfd = open( output_filename, flags, outfd_mode );
if( outfd < 0 )
{
if( errno == EEXIST ) outfd = -2; else outfd = -1;
@@ -600,6 +600,7 @@ void cleanup_and_fail( const int retval )
{
if( delete_output_on_interrupt )
{
+ delete_output_on_interrupt = false;
if( verbosity >= 0 )
fprintf( stderr, "%s: Deleting output file `%s', if it exists.\n",
program_name, output_filename );
@@ -831,6 +832,7 @@ int main( const int argc, const char * const argv[] )
strlen( default_output_filename ) + 1 );
strcpy( output_filename, default_output_filename );
}
+ outfd_mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
if( !open_outstream( force ) )
{
if( outfd == -1 && retval < 1 ) retval = 1;
@@ -855,6 +857,7 @@ int main( const int argc, const char * const argv[] )
if( program_mode == m_compress )
set_c_outname( input_filename, volume_size != LLONG_MAX );
else set_d_outname( input_filename, eindex );
+ outfd_mode = S_IRUSR | S_IWUSR;
if( !open_outstream( force ) )
{
if( outfd == -1 && retval < 1 ) retval = 1;