X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbuffer.c;h=5977f5a56ed80b17ad6723646fcb46b405928d64;hb=d659cbaccdc1f3279c49107cf15f15a639738529;hp=6fc3f4319005a55e6058233bf4e3ab56a5dee998;hpb=f6445e4ed68362950e8c83b60eed09871982fbe1;p=chaz%2Ftar diff --git a/src/buffer.c b/src/buffer.c index 6fc3f43..5977f5a 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -125,23 +125,16 @@ double duration; 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 (); } @@ -542,7 +535,7 @@ open_archive (enum access_mode wanted_access) 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; @@ -587,8 +580,8 @@ flush_write (void) { 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; @@ -636,7 +629,7 @@ flush_write (void) 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); } @@ -695,7 +688,7 @@ flush_write (void) assign_string (&real_s_name, 0); else { - assign_string (&real_s_name, + assign_string (&real_s_name, safer_name_suffix (save_name, false, absolute_names_option)); real_s_sizeleft = save_sizeleft; @@ -825,7 +818,7 @@ flush_read (void) { if (save_name) { - assign_string (&real_s_name, + assign_string (&real_s_name, safer_name_suffix (save_name, false, absolute_names_option)); real_s_sizeleft = save_sizeleft;