path: root/parse-options-cb.c
diff options
authorJohannes Schindelin <>2017-04-26 19:29:31 (GMT)
committerJunio C Hamano <>2017-04-27 04:07:39 (GMT)
commitdddbad728c93280fe54ef86699b6d70e2aab44d1 (patch)
treec2a48100bf8597f0771e6737fda19e7255c737dc /parse-options-cb.c
parentcb71f8bdb5a105cd5b66142b887989d9addc82d0 (diff)
timestamp_t: a new data type for timestamps
Git's source code assumes that unsigned long is at least as precise as time_t. Which is incorrect, and causes a lot of problems, in particular where unsigned long is only 32-bit (notably on Windows, even in 64-bit versions). So let's just use a more appropriate data type instead. In preparation for this, we introduce the new `timestamp_t` data type. By necessity, this is a very, very large patch, as it has to replace all timestamps' data type in one go. As we will use a data type that is not necessarily identical to `time_t`, we need to be very careful to use `time_t` whenever we interact with the system functions, and `timestamp_t` everywhere else. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'parse-options-cb.c')
1 files changed, 2 insertions, 2 deletions
diff --git a/parse-options-cb.c b/parse-options-cb.c
index 7419780..a6810f2 100644
--- a/parse-options-cb.c
+++ b/parse-options-cb.c
@@ -31,14 +31,14 @@ int parse_opt_abbrev_cb(const struct option *opt, const char *arg, int unset)
int parse_opt_approxidate_cb(const struct option *opt, const char *arg,
int unset)
- *(unsigned long *)(opt->value) = approxidate(arg);
+ *(timestamp_t *)(opt->value) = approxidate(arg);
return 0;
int parse_opt_expiry_date_cb(const struct option *opt, const char *arg,
int unset)
- return parse_expiry_date(arg, (unsigned long *)opt->value);
+ return parse_expiry_date(arg, (timestamp_t *)opt->value);
int parse_opt_color_flag_cb(const struct option *opt, const char *arg,