diff options
author | kientzle <kientzle@FreeBSD.org> | 2013-02-02 06:06:39 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2013-02-02 06:06:39 +0000 |
commit | 8cd4c4590c441c3cf72b3b27a984429ea59951af (patch) | |
tree | c9af86d72f72b424661d222a3b5314d82a6c1253 | |
parent | 55db66532bc11cfd0396b7b903219d2fdf416b8a (diff) | |
download | FreeBSD-src-8cd4c4590c441c3cf72b3b27a984429ea59951af.zip FreeBSD-src-8cd4c4590c441c3cf72b3b27a984429ea59951af.tar.gz |
Fix an obvious typo that broke time specifications of the form
"2 hours ago".
-rw-r--r-- | contrib/libarchive/libarchive/archive_getdate.c | 9 | ||||
-rw-r--r-- | contrib/libarchive/libarchive/test/test_archive_getdate.c | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/contrib/libarchive/libarchive/archive_getdate.c b/contrib/libarchive/libarchive/archive_getdate.c index f8b5a28..aaa9d6f 100644 --- a/contrib/libarchive/libarchive/archive_getdate.c +++ b/contrib/libarchive/libarchive/archive_getdate.c @@ -369,8 +369,8 @@ relunitphrase(struct gdstate *gds) && gds->tokenp[1].token == tSEC_UNIT) { /* "1 day" */ gds->HaveRel++; - gds->RelSeconds += gds->tokenp[1].value * gds->tokenp[2].value; - gds->tokenp += 3; + gds->RelSeconds += gds->tokenp[0].value * gds->tokenp[1].value; + gds->tokenp += 2; return 1; } if (gds->tokenp[0].token == '-' @@ -403,7 +403,7 @@ relunitphrase(struct gdstate *gds) /* "now", "tomorrow" */ gds->HaveRel++; gds->RelSeconds += gds->tokenp[0].value; - ++gds->tokenp; + gds->tokenp += 1; return 1; } if (gds->tokenp[0].token == tMONTH_UNIT) { @@ -1022,10 +1022,11 @@ int main(int argc, char **argv) { time_t d; + time_t now = time(NULL); while (*++argv != NULL) { (void)printf("Input: %s\n", *argv); - d = get_date(*argv); + d = get_date(now, *argv); if (d == -1) (void)printf("Bad format - couldn't convert.\n"); else diff --git a/contrib/libarchive/libarchive/test/test_archive_getdate.c b/contrib/libarchive/libarchive/test/test_archive_getdate.c index 4be359b..c56c39e 100644 --- a/contrib/libarchive/libarchive/test/test_archive_getdate.c +++ b/contrib/libarchive/libarchive/test/test_archive_getdate.c @@ -43,6 +43,8 @@ DEFINE_TEST(test_archive_getdate) assertEqualInt(get_date(now, "2004/01/29 513 mest"), 1075345980); assertEqualInt(get_date(now, "99/02/17 7pm utc"), 919278000); assertEqualInt(get_date(now, "02/17/99 7:11am est"), 919253460); + assertEqualInt(get_date(now, "now - 2 hours"), + get_date(now, "2 hours ago")); /* It's important that we handle ctime() format. */ assertEqualInt(get_date(now, "Sun Feb 22 17:38:26 PST 2009"), 1235353106); @@ -77,5 +79,6 @@ DEFINE_TEST(test_archive_getdate) /* "last tuesday" is one week before "tuesday" */ assertEqualInt(get_date(now, "last tuesday UTC"), now - 6 * 24 * 60 * 60); + /* TODO: Lots more tests here. */ } |