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
cache.h
14
cache.h
@ -1479,18 +1479,18 @@ struct date_mode {
|
||||
#define DATE_MODE(t) date_mode_from_type(DATE_##t)
|
||||
struct date_mode *date_mode_from_type(enum date_mode_type type);
|
||||
|
||||
const char *show_date(unsigned long time, int timezone, const struct date_mode *mode);
|
||||
void show_date_relative(unsigned long time, int tz, const struct timeval *now,
|
||||
const char *show_date(timestamp_t time, int timezone, const struct date_mode *mode);
|
||||
void show_date_relative(timestamp_t time, int tz, const struct timeval *now,
|
||||
struct strbuf *timebuf);
|
||||
int parse_date(const char *date, struct strbuf *out);
|
||||
int parse_date_basic(const char *date, unsigned long *timestamp, int *offset);
|
||||
int parse_expiry_date(const char *date, unsigned long *timestamp);
|
||||
int parse_date_basic(const char *date, timestamp_t *timestamp, int *offset);
|
||||
int parse_expiry_date(const char *date, timestamp_t *timestamp);
|
||||
void datestamp(struct strbuf *out);
|
||||
#define approxidate(s) approxidate_careful((s), NULL)
|
||||
unsigned long approxidate_careful(const char *, int *);
|
||||
unsigned long approxidate_relative(const char *date, const struct timeval *now);
|
||||
timestamp_t approxidate_careful(const char *, int *);
|
||||
timestamp_t approxidate_relative(const char *date, const struct timeval *now);
|
||||
void parse_date_format(const char *format, struct date_mode *mode);
|
||||
int date_overflows(unsigned long date);
|
||||
int date_overflows(timestamp_t date);
|
||||
|
||||
#define IDENT_STRICT 1
|
||||
#define IDENT_NO_DATE 2
|
||||
|
Reference in New Issue
Block a user