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. */
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <system.h>
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
void
set_start_time ()
{
-#if HAVE_CLOCK_GETTIME
- if (clock_gettime (CLOCK_REALTIME, &start_timespec) != 0)
-#endif
- start_time = time (0);
+ gettime (&start_time);
}
void
compute_duration ()
{
-#if HAVE_CLOCK_GETTIME
struct timespec now;
- if (clock_gettime (CLOCK_REALTIME, &now) == 0)
- duration += ((now.tv_sec - start_timespec.tv_sec)
- + (now.tv_nsec - start_timespec.tv_nsec) / 1e9);
- else
-#endif
- duration += time (NULL) - start_time;
+ gettime (&now);
+ duration += ((now.tv_sec - start_time.tv_sec)
+ + (now.tv_nsec - start_time.tv_nsec) / 1e9);
set_start_time ();
}
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;
strip_trailing_slashes (current_stat_info.file_name);
record_start->header.typeflag = GNUTYPE_VOLHDR;
- TIME_TO_CHARS (start_time, record_start->header.mtime);
+ TIME_TO_CHARS (start_time.tv_sec, record_start->header.mtime);
finish_header (¤t_stat_info, record_start, -1);
}
break;
{
if (save_name)
{
- assign_string (&real_s_name, safer_name_suffix (save_name, false));
+ assign_string (&real_s_name,
+ safer_name_suffix (save_name, false,
+ absolute_names_option));
real_s_totsize = save_totsize;
real_s_sizeleft = save_sizeleft;
}
memset (record_start, 0, BLOCKSIZE);
sprintf (record_start->header.name, "%s Volume %d",
volume_label_option, volno);
- TIME_TO_CHARS (start_time, record_start->header.mtime);
+ TIME_TO_CHARS (start_time.tv_sec, record_start->header.mtime);
record_start->header.typeflag = GNUTYPE_VOLHDR;
finish_header (¤t_stat_info, record_start, -1);
}
assign_string (&real_s_name, 0);
else
{
- assign_string (&real_s_name, safer_name_suffix (save_name, false));
+ assign_string (&real_s_name,
+ safer_name_suffix (save_name, false,
+ absolute_names_option));
real_s_sizeleft = save_sizeleft;
real_s_totsize = save_totsize;
}
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)
{
{
if (save_name)
{
- assign_string (&real_s_name, safer_name_suffix (save_name, false));
+ assign_string (&real_s_name,
+ safer_name_suffix (save_name, false,
+ absolute_names_option));
real_s_sizeleft = save_sizeleft;
real_s_totsize = save_totsize;
}