summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--INSTALL2
-rw-r--r--NEWS3
-rw-r--r--README9
-rw-r--r--carg_parser.c2
-rw-r--r--carg_parser.h2
-rwxr-xr-xconfigure6
-rw-r--r--doc/pdlzip.16
-rw-r--r--lzip.h2
-rw-r--r--main.c14
-rwxr-xr-xtestsuite/check.sh2
11 files changed, 32 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 5d52edb..bc4b2e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,9 @@
-2023-12-21 Antonio Diaz Diaz <antonio@gnu.org>
+2024-01-21 Antonio Diaz Diaz <antonio@gnu.org>
- * Version 1.13-rc1 released.
+ * Version 1.13 released.
* main.c: Reformat file diagnostics as 'PROGRAM: FILE: MESSAGE'.
(show_option_error): New function showing argument and option name.
+ (main): Make -o preserve date/mode/owner if 1 input file.
* lzip.h: Rename verify_* to check_*.
* configure, Makefile.in: New variable 'MAKEINFO'.
* INSTALL: Document use of CFLAGS+='--std=c99 -D_XOPEN_SOURCE=500'.
@@ -118,8 +119,7 @@
* Using LZMA SDK 9.10 (public domain) from Igor Pavlov.
-Copyright (C) 2010-2023 Antonio Diaz Diaz.
+Copyright (C) 2010-2024 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
-modify it.
+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 modify it.
diff --git a/INSTALL b/INSTALL
index 594420c..1da0402 100644
--- a/INSTALL
+++ b/INSTALL
@@ -74,7 +74,7 @@ After running 'configure', you can run 'make' and 'make install' as
explained above.
-Copyright (C) 2010-2023 Antonio Diaz Diaz.
+Copyright (C) 2010-2024 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.
diff --git a/NEWS b/NEWS
index 5415fd8..c719405 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,9 @@ File diagnostics have been reformatted as 'PROGRAM: FILE: MESSAGE'.
Diagnostics caused by invalid arguments to command-line options now show the
argument and the name of the option.
+The option '-o, --output' now preserves dates, permissions, and ownership of
+the file when (de)compressing exactly one file.
+
The variable MAKEINFO has been added to configure and Makefile.in.
It has been documented in INSTALL that when choosing a C standard, the POSIX
diff --git a/README b/README
index 14f73b7..dba78b8 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ Description
Pdlzip is a permissively licensed implementation of the lzip data
compressor, intended for those who can't distribute (or even use) GPL
licensed Free Software. The name of pdlzip comes from 'public domain lzip'.
-Pdlzip is written in C and is (hope)fully compatible with lzip 1.4 or newer.
+Pdlzip is written in C and is compatible with lzip 1.4 or newer.
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
@@ -57,11 +57,10 @@ users of the most non-free platforms can share lzip files with everybody
else.
-Copyright (C) 2010-2023 Antonio Diaz Diaz.
+Copyright (C) 2010-2024 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.
-The file Makefile.in is a data file used by configure to produce the
-Makefile. It has the same copyright owner and permissions that configure
-itself.
+The file Makefile.in is a data file used by configure to produce the Makefile.
+It has the same copyright owner and permissions that configure itself.
diff --git a/carg_parser.c b/carg_parser.c
index 8882b97..edb4eb9 100644
--- a/carg_parser.c
+++ b/carg_parser.c
@@ -1,5 +1,5 @@
/* Arg_parser - POSIX/GNU command-line argument parser. (C version)
- Copyright (C) 2006-2023 Antonio Diaz Diaz.
+ Copyright (C) 2006-2024 Antonio Diaz Diaz.
This library is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
diff --git a/carg_parser.h b/carg_parser.h
index ec5d3d0..69ce271 100644
--- a/carg_parser.h
+++ b/carg_parser.h
@@ -1,5 +1,5 @@
/* Arg_parser - POSIX/GNU command-line argument parser. (C version)
- Copyright (C) 2006-2023 Antonio Diaz Diaz.
+ Copyright (C) 2006-2024 Antonio Diaz Diaz.
This library is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
diff --git a/configure b/configure
index 1f8c60f..2a5e46e 100755
--- a/configure
+++ b/configure
@@ -1,12 +1,12 @@
#! /bin/sh
# configure script for Pdlzip - LZMA lossless data compressor
-# Copyright (C) 2010-2023 Antonio Diaz Diaz.
+# Copyright (C) 2010-2024 Antonio Diaz Diaz.
#
# This configure script is free software: you have unlimited permission
# to copy, distribute, and modify it.
pkgname=pdlzip
-pkgversion=1.13-rc1
+pkgversion=1.13
progname=pdlzip
srctrigger=doc/${progname}.1
@@ -171,7 +171,7 @@ echo "MAKEINFO = ${MAKEINFO}"
rm -f Makefile
cat > Makefile << EOF
# Makefile for Pdlzip - LZMA lossless data compressor
-# Copyright (C) 2010-2023 Antonio Diaz Diaz.
+# Copyright (C) 2010-2024 Antonio Diaz Diaz.
# This file was generated automatically by configure. Don't edit.
#
# This Makefile is free software: you have unlimited permission
diff --git a/doc/pdlzip.1 b/doc/pdlzip.1
index 0e3e384..1a16448 100644
--- a/doc/pdlzip.1
+++ b/doc/pdlzip.1
@@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
-.TH PDLZIP "1" "December 2023" "pdlzip 1.13-rc1" "User Commands"
+.TH PDLZIP "1" "January 2024" "pdlzip 1.13" "User Commands"
.SH NAME
pdlzip \- reduces the size of files
.SH SYNOPSIS
@@ -9,7 +9,7 @@ pdlzip \- reduces the size of files
Pdlzip is a permissively licensed implementation of the lzip data
compressor, intended for those who can't distribute (or even use) GPL
licensed Free Software. The name of pdlzip comes from 'public domain lzip'.
-Pdlzip is written in C and is (hope)fully compatible with lzip 1.4 or newer.
+Pdlzip is written in C and is compatible with lzip 1.4 or newer.
.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
@@ -112,7 +112,7 @@ Report bugs to lzip\-bug@nongnu.org
.br
Pdlzip home page: http://www.nongnu.org/lzip/pdlzip.html
.SH COPYRIGHT
-Copyright \(co 2023 Antonio Diaz Diaz.
+Copyright \(co 2024 Antonio Diaz Diaz.
Public Domain 2009 Igor Pavlov.
License 2\-clause BSD.
.br
diff --git a/lzip.h b/lzip.h
index 7e7805a..a1c78ab 100644
--- a/lzip.h
+++ b/lzip.h
@@ -1,5 +1,5 @@
/* Pdlzip - LZMA lossless data compressor
- Copyright (C) 2010-2023 Antonio Diaz Diaz.
+ Copyright (C) 2010-2024 Antonio Diaz Diaz.
This program is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
diff --git a/main.c b/main.c
index 0d3b659..6d0fcc1 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,6 @@
/* Pdlzip - LZMA lossless data compressor
2009-08-14 : Igor Pavlov : Public domain
- Copyright (C) 2010-2023 Antonio Diaz Diaz.
+ Copyright (C) 2010-2024 Antonio Diaz Diaz.
This program is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
@@ -85,7 +85,7 @@ static void show_file_error( const char * const filename,
static void internal_error( const char * const msg );
static const char * const program_name = "pdlzip";
-static const char * const program_year = "2023";
+static const char * const program_year = "2024";
static const char * invocation_name = "pdlzip"; /* default value */
static const struct { const char * from; const char * to; } known_extensions[] = {
@@ -114,7 +114,7 @@ static void show_help( void )
printf( "Pdlzip is a permissively licensed implementation of the lzip data\n"
"compressor, intended for those who can't distribute (or even use) GPL\n"
"licensed Free Software. The name of pdlzip comes from 'public domain lzip'.\n"
- "Pdlzip is written in C and is (hope)fully compatible with lzip 1.4 or newer.\n"
+ "Pdlzip is written in C and is compatible with lzip 1.4 or newer.\n"
"\nLzip is a lossless data compressor with a user interface similar to the one\n"
"of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov\n"
"chain-Algorithm' (LZMA) stream format to maximize interoperability. The\n"
@@ -567,7 +567,7 @@ static void close_and_set_permissions( const struct stat * const in_statsp )
if( in_statsp )
{
const mode_t mode = in_statsp->st_mode;
- /* fchown will in many cases return with EPERM, which can be safely ignored. */
+ /* fchown in many cases returns with EPERM, which can be safely ignored. */
if( fchown( outfd, in_statsp->st_uid, in_statsp->st_gid ) == 0 )
{ if( fchmod( outfd, mode ) != 0 ) warning = true; }
else
@@ -1163,11 +1163,11 @@ int main( const int argc, const char * const argv[] )
int retval = 0;
const bool one_to_one = !to_stdout && program_mode != m_test && !to_file;
bool stdin_used = false;
+ struct stat in_stats;
for( i = 0; i < num_filenames; ++i )
{
const char * input_filename = "";
int infd;
- struct stat in_stats;
Pp_set_name( &pp, filenames[i] );
if( strcmp( filenames[i], "-" ) == 0 )
@@ -1230,7 +1230,9 @@ int main( const int argc, const char * const argv[] )
if( input_filename[0] && !keep_input_files && one_to_one )
remove( input_filename );
}
- if( delete_output_on_interrupt ) close_and_set_permissions( 0 ); /* -o */
+ if( delete_output_on_interrupt ) /* -o */
+ close_and_set_permissions( ( retval == 0 && !stdin_used &&
+ filenames_given && num_filenames == 1 ) ? &in_stats : 0 );
else if( outfd >= 0 && close( outfd ) != 0 ) /* -c */
{
show_error( "Error closing stdout", errno, false );
diff --git a/testsuite/check.sh b/testsuite/check.sh
index 8c18a1c..6b7522e 100755
--- a/testsuite/check.sh
+++ b/testsuite/check.sh
@@ -1,6 +1,6 @@
#! /bin/sh
# check script for Pdlzip - LZMA lossless data compressor
-# Copyright (C) 2010-2023 Antonio Diaz Diaz.
+# Copyright (C) 2010-2024 Antonio Diaz Diaz.
#
# This script is free software: you have unlimited permission
# to copy, distribute, and modify it.