diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-05-16 02:51:59 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-16 02:51:59 (GMT) |
commit | b15667bbdc5ab7732caac977068f5d1cf083115e (patch) | |
tree | ad171d36adab7298daa32172dd81906899a38660 /refs | |
parent | afc5f2ce63be2a51b1f87467065e47c398468c9e (diff) | |
parent | 3f789719a65bfa6c302e8f794847a3eb69b6881b (diff) | |
download | git-b15667bbdc5ab7732caac977068f5d1cf083115e.zip git-b15667bbdc5ab7732caac977068f5d1cf083115e.tar.gz git-b15667bbdc5ab7732caac977068f5d1cf083115e.tar.bz2 |
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
Diffstat (limited to 'refs')
-rw-r--r-- | refs/files-backend.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c index 9d08e84..4925e69 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -2273,7 +2273,7 @@ static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *c { struct object_id ooid, noid; char *email_end, *message; - unsigned long timestamp; + timestamp_t timestamp; int tz; const char *p = sb->buf; @@ -2283,7 +2283,7 @@ static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *c parse_oid_hex(p, &noid, &p) || *p++ != ' ' || !(email_end = strchr(p, '>')) || email_end[1] != ' ' || - !(timestamp = strtoul(email_end + 2, &message, 10)) || + !(timestamp = parse_timestamp(email_end + 2, &message, 10)) || !message || message[0] != ' ' || (message[1] != '+' && message[1] != '-') || !isdigit(message[2]) || !isdigit(message[3]) || @@ -3154,7 +3154,7 @@ struct expire_reflog_cb { }; static int expire_reflog_ent(struct object_id *ooid, struct object_id *noid, - const char *email, unsigned long timestamp, int tz, + const char *email, timestamp_t timestamp, int tz, const char *message, void *cb_data) { struct expire_reflog_cb *cb = cb_data; @@ -3171,7 +3171,7 @@ static int expire_reflog_ent(struct object_id *ooid, struct object_id *noid, printf("prune %s", message); } else { if (cb->newlog) { - fprintf(cb->newlog, "%s %s %s %lu %+05d\t%s", + fprintf(cb->newlog, "%s %s %s %"PRItime" %+05d\t%s", oid_to_hex(ooid), oid_to_hex(noid), email, timestamp, tz, message); oidcpy(&cb->last_kept_oid, noid); |