diff options
Diffstat (limited to 'create.cc')
-rw-r--r-- | create.cc | 25 |
1 files changed, 13 insertions, 12 deletions
@@ -20,14 +20,14 @@ #include <algorithm> #include <cerrno> #include <cstdio> -#include <stdint.h> // for lzlib.h +#include <stdint.h> // for lzlib.h #include <unistd.h> #include <sys/stat.h> #if !defined __FreeBSD__ && !defined __OpenBSD__ && !defined __NetBSD__ && \ !defined __DragonFly__ && !defined __APPLE__ && !defined __OS2__ -#include <sys/sysmacros.h> // for major, minor +#include <sys/sysmacros.h> // for major, minor #else -#include <sys/types.h> // for major, minor +#include <sys/types.h> // for major, minor #endif #include <ftw.h> #include <grp.h> @@ -178,7 +178,7 @@ bool archive_write( const uint8_t * const buf, const int size ) static bool flushed = true; // avoid flushing empty lzip members if( size <= 0 && flushed ) return true; - flushed = ( size <= 0 ); + flushed = size <= 0; if( !encoder ) // uncompressed return writeblock_wrapper( goutfd, buf, size ); enum { obuf_size = 65536 }; @@ -307,11 +307,12 @@ bool check_tty_out( const char * const archive_namep, const int outfd, // infd and outfd can refer to the same file if copying to a lower file // position or if source and destination blocks don't overlap. // max_size < 0 means no size limit. -bool copy_file( const int infd, const int outfd, const long long max_size ) +bool copy_file( const int infd, const int outfd, const char * const filename, + const long long max_size ) { const long long buffer_size = 65536; // remaining number of bytes to copy - long long rest = ( ( max_size >= 0 ) ? max_size : buffer_size ); + long long rest = ( max_size >= 0 ) ? max_size : buffer_size; long long copied_size = 0; uint8_t * const buffer = new uint8_t[buffer_size]; bool error = false; @@ -322,7 +323,7 @@ bool copy_file( const int infd, const int outfd, const long long max_size ) if( max_size >= 0 ) rest -= size; const int rd = readblock( infd, buffer, size ); if( rd != size && errno ) - { show_error( "Error reading input file", errno ); error = true; break; } + { show_file_error( filename, "Read error", errno ); error = true; break; } if( rd > 0 ) { if( !writeblock_wrapper( outfd, buffer, rd ) ) { error = true; break; } @@ -331,7 +332,7 @@ bool copy_file( const int infd, const int outfd, const long long max_size ) if( rd < size ) break; // EOF } delete[] buffer; - return ( !error && ( max_size < 0 || copied_size == max_size ) ); + return !error && ( max_size < 0 || copied_size == max_size ); } @@ -339,7 +340,7 @@ bool writeblock_wrapper( const int outfd, const uint8_t * const buffer, const int size ) { if( writeblock( outfd, buffer, size ) != size ) - { show_file_error( archive_namep, werr_msg, errno ); return false; } + { show_file_error( archive_namep, wr_err_msg, errno ); return false; } return true; } @@ -519,8 +520,8 @@ unsigned ustar_chksum( const Tar_header header ) bool check_ustar_chksum( const Tar_header header ) - { return ( check_ustar_magic( header ) && - ustar_chksum( header ) == parse_octal( header + chksum_o, chksum_l ) ); } + { return check_ustar_magic( header ) && + ustar_chksum( header ) == parse_octal( header + chksum_o, chksum_l ); } bool has_lz_ext( const std::string & name ) @@ -605,7 +606,7 @@ int concatenate( const Cl_options & cl_opts ) "Not an appendable tar.lz archive." : "Not an appendable tar archive." ); close( infd ); retval = 2; break; } - if( !copy_file( infd, outfd, size ) || close( infd ) != 0 ) + if( !copy_file( infd, outfd, filename, size ) || close( infd ) != 0 ) { show_file_error( filename, "Error copying archive", errno ); eoa_pending = false; retval = 1; break; } eoa_pending = true; |