X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbuffer.c;h=4b44eaf13b9844b39e7bc6b8c80adbb93c19e882;hb=2c06a80918019471876956eef4ef22f05c9e0571;hp=422798ed32f696bece6e3799ce42caac9525a6ea;hpb=cbc51277aa4de1f41434ba073f2e4546ead63005;p=chaz%2Ftar diff --git a/src/buffer.c b/src/buffer.c index 422798e..4b44eaf 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1,24 +1,24 @@ /* Buffer management for tar. - Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software + Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2013 Free Software Foundation, Inc. - Written by John Gilmore, on 1985-08-25. + This file is part of GNU tar. - 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 3, or (at your option) any later - version. + GNU tar 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 3 of the License, 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. + GNU tar 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., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Written by John Gilmore, on 1985-08-25. */ #include #include @@ -41,7 +41,7 @@ static tarlong prev_written; /* bytes written on previous volumes */ static tarlong bytes_written; /* bytes written on this volume */ static void *record_buffer[2]; /* allocated memory */ -union block *record_buffer_aligned[2]; +static union block *record_buffer_aligned[2]; static int record_index; /* FIXME: The following variables should ideally be static to this @@ -83,8 +83,8 @@ extern bool time_to_start_writing; bool write_archive_to_stdout; -void (*flush_write_ptr) (size_t); -void (*flush_read_ptr) (void); +static void (*flush_write_ptr) (size_t); +static void (*flush_read_ptr) (void); char *volume_label; @@ -230,7 +230,7 @@ clear_read_error_count (void) /* Time-related functions */ -double duration; +static double duration; void set_start_time (void) @@ -722,9 +722,6 @@ _open_archive (enum access_mode wanted_access) break; } } - else if (verify_option) - archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY, - MODE_RW, rsh_command_option); else switch (wanted_access) { @@ -740,8 +737,12 @@ _open_archive (enum access_mode wanted_access) maybe_backup_file (archive_name_array[0], 1); backed_up_flag = 1; } - archive = rmtcreat (archive_name_array[0], MODE_RW, - rsh_command_option); + if (verify_option) + archive = rmtopen (archive_name_array[0], O_RDWR | O_CREAT | O_BINARY, + MODE_RW, rsh_command_option); + else + archive = rmtcreat (archive_name_array[0], MODE_RW, + rsh_command_option); break; case ACCESS_UPDATE: @@ -883,16 +884,16 @@ short_read (size_t status) left = record_size - status; if (left && left % BLOCKSIZE == 0 - && verbose_option + && (warning_option & WARN_RECORD_SIZE) && record_start_block == 0 && status != 0 && archive_is_dev ()) { unsigned long rsize = status / BLOCKSIZE; WARN ((0, 0, - ngettext ("Record size = %lu block", - "Record size = %lu blocks", - rsize), - rsize)); + ngettext ("Record size = %lu block", + "Record size = %lu blocks", + rsize), + rsize)); } while (left % BLOCKSIZE != 0