(short_read): Don't warn about short reads; they're normal.
* tests/shortrec.at: New file.
* tests/testsuite.at: Include it.
+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
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
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 */
/* 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;
access_mode = wanted_access == ACCESS_UPDATE ? ACCESS_READ : wanted_access;
read_full_records = read_full_records_option;
- reading_from_pipe = false;
records_read = 0;
{
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;
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)
{
--- /dev/null
+# 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
m4_include([same-order01.at])
m4_include([same-order02.at])
+m4_include([shortrec.at])
+
m4_include([sparse01.at])
m4_include([sparse02.at])