* 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.
This commit is contained in:
Sergey Poznyakoff
2008-10-22 20:55:35 +00:00
parent 57bfbbde90
commit 5354888e40
7 changed files with 35 additions and 10 deletions

View File

@@ -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.

6
NEWS
View File

@@ -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.

1
THANKS
View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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])])

View File

@@ -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