summaryrefslogtreecommitdiff
path: root/t/helper/test-date.c
diff options
context:
space:
mode:
authorLibravatar Johannes Schindelin <johannes.schindelin@gmx.de>2017-04-26 21:29:31 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-04-27 13:07:39 +0900
commitdddbad728c93280fe54ef86699b6d70e2aab44d1 (patch)
treec2a48100bf8597f0771e6737fda19e7255c737dc /t/helper/test-date.c
parentPRItime: introduce a new "printf format" for timestamps (diff)
downloadtgif-dddbad728c93280fe54ef86699b6d70e2aab44d1.tar.xz
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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/helper/test-date.c')
-rw-r--r--t/helper/test-date.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/t/helper/test-date.c b/t/helper/test-date.c
index 269040f028..f414a3ac67 100644
--- a/t/helper/test-date.c
+++ b/t/helper/test-date.c
@@ -27,7 +27,7 @@ static void show_dates(const char **argv, const char *format)
parse_date_format(format, &mode);
for (; *argv; argv++) {
char *arg;
- time_t t;
+ timestamp_t t;
int tz;
/*
@@ -48,7 +48,7 @@ static void parse_dates(const char **argv, struct timeval *now)
struct strbuf result = STRBUF_INIT;
for (; *argv; argv++) {
- unsigned long t;
+ timestamp_t t;
int tz;
strbuf_reset(&result);
@@ -65,7 +65,7 @@ static void parse_dates(const char **argv, struct timeval *now)
static void parse_approxidate(const char **argv, struct timeval *now)
{
for (; *argv; argv++) {
- time_t t;
+ timestamp_t t;
t = approxidate_relative(*argv, now);
printf("%s -> %s\n", *argv, show_date(t, 0, DATE_MODE(ISO8601)));
}
@@ -96,7 +96,7 @@ int cmd_main(int argc, const char **argv)
else if (!strcmp(*argv, "approxidate"))
parse_approxidate(argv+1, &now);
else if (!strcmp(*argv, "is64bit"))
- return sizeof(unsigned long) == 8 ? 0 : 1;
+ return sizeof(timestamp_t) == 8 ? 0 : 1;
else if (!strcmp(*argv, "time_t-is64bit"))
return sizeof(time_t) == 8 ? 0 : 1;
else