Merge branch 'js/larger-timestamps'
Some platforms have ulong that is smaller than time_t, and our historical use of ulong for timestamp would mean they cannot represent some timestamp that the platform allows. Invent a separate and dedicated timestamp_t (so that we can distingiuish timestamps and a vanilla ulongs, which along is already a good move), and then declare uintmax_t is the type to be used as the timestamp_t. * js/larger-timestamps: archive-tar: fix a sparse 'constant too large' warning use uintmax_t for timestamps date.c: abort if the system time cannot handle one of our timestamps timestamp_t: a new data type for timestamps PRItime: introduce a new "printf format" for timestamps parse_timestamp(): specify explicitly where we parse timestamps t0006 & t5000: skip "far in the future" test when time_t is too limited t0006 & t5000: prepare for 64-bit timestamps ref-filter: avoid using `unsigned long` for catch-all data type
This commit is contained in:
@ -879,12 +879,12 @@ static int hg_patch_to_mail(FILE *out, FILE *in, int keep_cr)
|
||||
if (skip_prefix(sb.buf, "# User ", &str))
|
||||
fprintf(out, "From: %s\n", str);
|
||||
else if (skip_prefix(sb.buf, "# Date ", &str)) {
|
||||
unsigned long timestamp;
|
||||
timestamp_t timestamp;
|
||||
long tz, tz2;
|
||||
char *end;
|
||||
|
||||
errno = 0;
|
||||
timestamp = strtoul(str, &end, 10);
|
||||
timestamp = parse_timestamp(str, &end, 10);
|
||||
if (errno)
|
||||
return error(_("invalid timestamp"));
|
||||
|
||||
|
Reference in New Issue
Block a user