diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-10-22 20:55:35 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2008-10-22 20:55:35 +0000 |
commit | 5354888e400e0565e85ac29e4826c0f7840cab45 (patch) | |
tree | 81b1a2a7762a5dedb067c65df387a708375780a6 | |
parent | 57bfbbde90dfcc18ee6b1e27c01ba915ecc56312 (diff) | |
download | tar-5354888e400e0565e85ac29e4826c0f7840cab45.tar.gz |
* src/buffer.c (short_read): Remove !read_full_records condition,
which was always false on a first record and thus disabled record
size autodetection. Thanks Ed Leaver for the patch.
(_gnu_flush_read): Handle blocking_factor == 1.
* tests/sparsemv.at: Reflect changes to buffer.c.
* tests/sparsemvp.at: Likewise.
* tests/volsize.at: Likewise.
* NEWS: Update.
* THANKS: Add Ed Leaver.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | src/buffer.c | 5 | ||||
-rw-r--r-- | tests/sparsemv.at | 10 | ||||
-rw-r--r-- | tests/sparsemvp.at | 6 | ||||
-rw-r--r-- | tests/volsize.at | 5 |
7 files changed, 35 insertions, 10 deletions
@@ -1,3 +1,15 @@ +2008-10-19 Sergey Poznyakoff <gray@gnu.org.ua> + + * THANKS: Add Ed Leaver. + * src/buffer.c (short_read): Remove !read_full_records condition, + which was always false on a first record and thus disabled record + size autodetection. Thanks Ed Leaver for the patch. + (_gnu_flush_read): Handle blocking_factor == 1. + * tests/sparsemv.at: Reflect changes to buffer.c. + * tests/sparsemvp.at: Likewise. + * tests/volsize.at: Likewise. + * NEWS: Update. + 2008-10-16 Sergey Poznyakoff <gray@gnu.org.ua> * src/common.h (transform_symlinks_option): New global. @@ -1,4 +1,4 @@ -GNU tar NEWS - User visible changes. 2008-10-16 +GNU tar NEWS - User visible changes. 2008-10-22 Please send GNU tar bug reports to <bug-tar@gnu.org> @@ -42,6 +42,10 @@ prior --transform-symlink. ** The --null option disabled handling of tar options in list files. This is fixed. +** Fixed record size autodetection. If the detected record size differs from +the expected value (either default, or set on the command line), tar +always prints a warning if verbosity level is set to 1 or greater, +i.e. if either -t or -v option is given. @@ -147,6 +147,7 @@ Drew Sullivan drew@sni.ca Drew Trieger trieger@woodstock.abbott.com Dunstan Vavasour dev@cegelecproj.co.uk Ed Childs echilds@bgs.com +Ed Leaver ewleaver@comcast.net Edgar Taube et@immd8.informatik.uni-erlangen.de Eduardo Kortright eduardo@cs.ua.edu Eduardo V. de Rivas eddie@asterion.com diff --git a/src/buffer.c b/src/buffer.c index 79bb7d6f..59d4e4f0 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -687,7 +687,7 @@ short_read (size_t status) left = record_size - status; if (left && left % BLOCKSIZE == 0 - && !read_full_records && verbose_option > 1 + && verbose_option && record_start_block == 0 && status != 0) { unsigned long rsize = status / BLOCKSIZE; @@ -1567,6 +1567,9 @@ _gnu_flush_read (void) { while (!try_new_volume ()) ; + if (current_block == record_end) + /* Necessary for blocking_factor == 1 */ + flush_archive(); return; } else if (status == SAFE_READ_ERROR) diff --git a/tests/sparsemv.at b/tests/sparsemv.at index a0d375e8..81da6130 100644 --- a/tests/sparsemv.at +++ b/tests/sparsemv.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # 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 @@ -35,18 +35,18 @@ echo "Pass 1: Split between data blocks" echo "Create archive" tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 echo "Test archive" -tar -t -M -f arc.1 -f arc.2 +tar --record-size=512 -t -M -f arc.1 -f arc.2 echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 +tar --record-size=512 -d -M -f arc.1 -f arc.2 echo "Pass 2: Split within a data block" genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || AT_SKIP_TEST echo "Create archive" tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1 echo "Test archive" -tar -t -M -f arc.1 -f arc.2 +tar --record-size=512 -t -M -f arc.1 -f arc.2 echo "Compare archive" -tar -d -M -f arc.1 -f arc.2 +tar --record-size=512 -d -M -f arc.1 -f arc.2 ], [0], [Pass 1: Split between data blocks diff --git a/tests/sparsemvp.at b/tests/sparsemvp.at index 26748135..2edd8233 100644 --- a/tests/sparsemvp.at +++ b/tests/sparsemvp.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # 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 @@ -56,5 +56,7 @@ Test archive sparsefile Compare archive ], -[],[],[],[pax])]) +[tar: Record size = 12 blocks +tar: Record size = 12 blocks +],[],[],[pax])]) diff --git a/tests/volsize.at b/tests/volsize.at index 3408f816..b8624a04 100644 --- a/tests/volsize.at +++ b/tests/volsize.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright (C) 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. # 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 @@ -51,6 +51,9 @@ V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Heade Extracted directory abc abc/CCC +], +[tar: Record size = 5 blocks +tar: Record size = 5 blocks ]) AT_CLEANUP |