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:
14
refs.c
14
refs.c
@ -714,7 +714,7 @@ int is_branch(const char *refname)
|
||||
|
||||
struct read_ref_at_cb {
|
||||
const char *refname;
|
||||
unsigned long at_time;
|
||||
timestamp_t at_time;
|
||||
int cnt;
|
||||
int reccnt;
|
||||
unsigned char *sha1;
|
||||
@ -723,15 +723,15 @@ struct read_ref_at_cb {
|
||||
unsigned char osha1[20];
|
||||
unsigned char nsha1[20];
|
||||
int tz;
|
||||
unsigned long date;
|
||||
timestamp_t date;
|
||||
char **msg;
|
||||
unsigned long *cutoff_time;
|
||||
timestamp_t *cutoff_time;
|
||||
int *cutoff_tz;
|
||||
int *cutoff_cnt;
|
||||
};
|
||||
|
||||
static int read_ref_at_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 read_ref_at_cb *cb = cb_data;
|
||||
@ -778,7 +778,7 @@ static int read_ref_at_ent(struct object_id *ooid, struct object_id *noid,
|
||||
}
|
||||
|
||||
static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid,
|
||||
const char *email, unsigned long timestamp,
|
||||
const char *email, timestamp_t timestamp,
|
||||
int tz, const char *message, void *cb_data)
|
||||
{
|
||||
struct read_ref_at_cb *cb = cb_data;
|
||||
@ -798,9 +798,9 @@ static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid
|
||||
return 1;
|
||||
}
|
||||
|
||||
int read_ref_at(const char *refname, unsigned int flags, unsigned long at_time, int cnt,
|
||||
int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, int cnt,
|
||||
unsigned char *sha1, char **msg,
|
||||
unsigned long *cutoff_time, int *cutoff_tz, int *cutoff_cnt)
|
||||
timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt)
|
||||
{
|
||||
struct read_ref_at_cb cb;
|
||||
|
||||
|
Reference in New Issue
Block a user