* src/buffer.c (reading_from_pipe): Remove. All uses removed.
(short_read): Don't warn about short reads; they're normal. * tests/shortrec.at: New file. * tests/testsuite.at: Include it.
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,14 @@
|
||||
2005-04-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* src/buffer.c (reading_from_pipe): Remove. All uses removed.
|
||||
(short_read): Don't warn about short reads; they're normal.
|
||||
* tests/shortrec.at: New file.
|
||||
* tests/testsuite.at: Include it.
|
||||
|
||||
* bootstrap (gnulib_modules): Don't create a file modlist.tmp, as
|
||||
it is sometimes left behind as a garbage file (maybe due to the
|
||||
multiple traps?).
|
||||
|
||||
2005-04-14 Sergey Poznyakoff <gray@Mirddin.farlep.net>
|
||||
|
||||
* src/list.c: Handle Solaris 'X' type flag
|
||||
|
||||
27
src/buffer.c
27
src/buffer.c
@@ -73,7 +73,6 @@ static bool hit_eof;
|
||||
static int checkpoint;
|
||||
|
||||
static bool read_full_records = false;
|
||||
static bool reading_from_pipe = false;
|
||||
|
||||
/* We're reading, but we just read the last block and it's time to update.
|
||||
Declared in update.c
|
||||
@@ -182,21 +181,17 @@ enum compress_type
|
||||
check_compressed_archive ()
|
||||
{
|
||||
struct zip_magic const *p;
|
||||
bool sfr, srp;
|
||||
bool sfr;
|
||||
|
||||
/* Prepare global data needed for find_next_block: */
|
||||
record_end = record_start; /* set up for 1st record = # 0 */
|
||||
sfr = read_full_records;
|
||||
read_full_records = true; /* Suppress fatal error on reading a partial
|
||||
record */
|
||||
srp = reading_from_pipe;
|
||||
reading_from_pipe = true; /* Suppress warning message on reading a partial
|
||||
record */
|
||||
find_next_block ();
|
||||
|
||||
/* Restore global values */
|
||||
read_full_records = sfr;
|
||||
reading_from_pipe = srp;
|
||||
|
||||
if (tar_checksum (record_start, true) == HEADER_SUCCESS)
|
||||
/* Probably a valid header */
|
||||
@@ -236,7 +231,7 @@ open_compressed_archive ()
|
||||
/* Open compressed archive */
|
||||
use_compress_program_option = compress_program (type);
|
||||
child_pid = sys_child_open_for_uncompress ();
|
||||
read_full_records = reading_from_pipe = true;
|
||||
read_full_records = true;
|
||||
}
|
||||
|
||||
records_read = 0;
|
||||
@@ -406,7 +401,6 @@ open_archive (enum access_mode wanted_access)
|
||||
access_mode = wanted_access == ACCESS_UPDATE ? ACCESS_READ : wanted_access;
|
||||
|
||||
read_full_records = read_full_records_option;
|
||||
reading_from_pipe = false;
|
||||
|
||||
records_read = 0;
|
||||
|
||||
@@ -416,7 +410,7 @@ open_archive (enum access_mode wanted_access)
|
||||
{
|
||||
case ACCESS_READ:
|
||||
child_pid = sys_child_open_for_uncompress ();
|
||||
read_full_records = reading_from_pipe = true;
|
||||
read_full_records = true;
|
||||
record_end = record_start; /* set up for 1st record = # 0 */
|
||||
break;
|
||||
|
||||
@@ -760,20 +754,7 @@ short_read (size_t status)
|
||||
archive_read_error ();
|
||||
|
||||
if (status == 0)
|
||||
{
|
||||
if (!reading_from_pipe)
|
||||
{
|
||||
char buf[UINTMAX_STRSIZE_BOUND];
|
||||
|
||||
WARN((0, 0,
|
||||
ngettext ("Read %s byte from %s",
|
||||
"Read %s bytes from %s",
|
||||
record_size - left),
|
||||
STRINGIFY_BIGINT (record_size - left, buf),
|
||||
*archive_name_cursor));
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
if (! read_full_records)
|
||||
{
|
||||
|
||||
39
tests/shortrec.at
Normal file
39
tests/shortrec.at
Normal file
@@ -0,0 +1,39 @@
|
||||
# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
||||
|
||||
# Test suite for GNU tar.
|
||||
# Copyright (C) 2005 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
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# Check that tar doesn't complain when reading short records.
|
||||
# This can happen when the input blocksize differs from the blocksize
|
||||
# used to create the archive.
|
||||
|
||||
AT_SETUP([short records])
|
||||
AT_KEYWORDS([shortrec.at])
|
||||
|
||||
AT_TAR_CHECK([
|
||||
mkdir directory
|
||||
(cd directory && touch a b c d e f g h i j k l m n o p q r)
|
||||
tar -c -b 1 directory | tar -t >/dev/null
|
||||
tar -c -b 1 -f archive directory
|
||||
tar -t -f archive >/dev/null
|
||||
tar -t <archive >/dev/null
|
||||
|
||||
rm -r directory
|
||||
])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -106,6 +106,8 @@ m4_include([recurse.at])
|
||||
m4_include([same-order01.at])
|
||||
m4_include([same-order02.at])
|
||||
|
||||
m4_include([shortrec.at])
|
||||
|
||||
m4_include([sparse01.at])
|
||||
m4_include([sparse02.at])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user