From: Paul Eggert Date: Sat, 17 Jul 1999 01:49:35 +0000 (+0000) Subject: (decode_options): Set newer_time_option to TYPE_MINIMUM, so that X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=617f136b46ef83a4622981a2aa1972090f8d708d;p=chaz%2Ftar (decode_options): Set newer_time_option to TYPE_MINIMUM, so that negative timestamps are handled correctly. Replace invocations of xstrtol and xstrtoul with xstrtoumax, for uniformity (and so that we don't need to have the other fns). (main): Remove call to init_total_written; no longer needed. --- diff --git a/src/tar.c b/src/tar.c index 78243b6..04ad22a 100644 --- a/src/tar.c +++ b/src/tar.c @@ -453,6 +453,7 @@ decode_options (int argc, char *const *argv) blocking_factor = DEFAULT_BLOCKING; record_size = DEFAULT_BLOCKING * BLOCKSIZE; excluded = new_exclude (); + newer_mtime_option = TYPE_MINIMUM (time_t); owner_option = -1; group_option = -1; @@ -550,11 +551,11 @@ decode_options (int argc, char *const *argv) case 'b': { - long l; - if (! (xstrtol (optarg, (char **) 0, 10, &l, "") == LONGINT_OK - && l == (blocking_factor = l) + uintmax_t u; + if (! (xstrtoumax (optarg, (char **) 0, 10, &u, "") == LONGINT_OK + && u == (blocking_factor = u) && 0 < blocking_factor - && l == (record_size = l * (size_t) BLOCKSIZE) / BLOCKSIZE)) + && u == (record_size = u * (size_t) BLOCKSIZE) / BLOCKSIZE)) USAGE_ERROR ((0, 0, _("Invalid blocking factor"))); } break; @@ -653,12 +654,10 @@ decode_options (int argc, char *const *argv) case 'L': { - unsigned long u; - if (xstrtoul (optarg, (char **) 0, 10, &u, "") != LONG_MAX) + uintmax_t u; + if (xstrtoumax (optarg, (char **) 0, 10, &u, "") != LONG_MAX) USAGE_ERROR ((0, 0, _("Invalid tape length"))); - clear_tarlong (tape_length_option); - add_to_tarlong (tape_length_option, u); - mult_tarlong (tape_length_option, 1024); + tape_length_option = 1024 * (tarlong) u; multi_volume_option = 1; } break; @@ -1155,9 +1154,6 @@ main (int argc, char *const *argv) break; case CREATE_SUBCOMMAND: - if (totals_option) - init_total_written (); - create_archive (); name_close ();