summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2013-02-02 06:06:39 +0000
committerkientzle <kientzle@FreeBSD.org>2013-02-02 06:06:39 +0000
commit8cd4c4590c441c3cf72b3b27a984429ea59951af (patch)
treec9af86d72f72b424661d222a3b5314d82a6c1253
parent55db66532bc11cfd0396b7b903219d2fdf416b8a (diff)
downloadFreeBSD-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.c9
-rw-r--r--contrib/libarchive/libarchive/test/test_archive_getdate.c3
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. */
}
OpenPOWER on IntegriCloud