From b8d5701a2a04d0510fce49f9bf30c279dd7f7e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Thu, 28 Aug 2014 17:49:15 +0200 Subject: [PATCH] Calendar: Improved dwim_time() for ISO-8601 dates. Also adds some corresponding testsuite tests. FIXME: Ought to have tests for all the patterns in dwim_{day,time}(). --- lib/modules/Calendar.pmod/YMD.pike | 4 +++- lib/modules/Calendar.pmod/testsuite.in | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/modules/Calendar.pmod/YMD.pike b/lib/modules/Calendar.pmod/YMD.pike index d2ae208bc6..49e8d32c28 100644 --- a/lib/modules/Calendar.pmod/YMD.pike +++ b/lib/modules/Calendar.pmod/YMD.pike @@ -3257,7 +3257,9 @@ TimeofDay dwim_time(string what,void|TimeRange cx) "%*[a-zA-Z.] %h"COLON"%m %z", "%*[a-zA-Z.] %h"COLON"%m%z", "%*[a-zA-Z.] %h"COLON"%m", - "%*[a-zA-Z.] %h%*[ ]%p", }), + "%*[a-zA-Z.] %h%*[ ]%p", + "%t", + }), string todformat ) { // werror("try: %O\n %O\n", diff --git a/lib/modules/Calendar.pmod/testsuite.in b/lib/modules/Calendar.pmod/testsuite.in index 0f46374d22..1927dda2ce 100644 --- a/lib/modules/Calendar.pmod/testsuite.in +++ b/lib/modules/Calendar.pmod/testsuite.in @@ -28,7 +28,9 @@ test_do(Calendar.TimeRange t = Calendar.now()) dnl Some more or less odd timezones encountered by Xenofarm: define(test_dwim,[[ test_eq(Calendar.ISO.set_timezone("CET")->dwim_time($1)->format_time(),"2002-11-19 07:04:03") - test_eq(Calendar.ISO.set_timezone("CET")->dwim_time($1)->tzname(),$2) + ifelse($2,,,[[ + test_eq(Calendar.ISO.set_timezone("CET")->dwim_time($1)->tzname(),$2) + ]]) ]]) test_dwim("Tue Nov 19 07:04:03 MET 2002","MET") test_dwim("Tue Nov 19 07:04:03 CST 2002","CST") @@ -42,6 +44,10 @@ test_dwim("Tue Nov 19 07:04:03 METDST 2002","MET") test_dwim([["Tue, 19 Nov 2002 07:04:03 GMT"]],"GMT") test_dwim([["Tuesday, 19-Nov-02 07:04:03 GMT"]],"GMT") test_dwim("Tue Nov 19 07:04:03 2002","GMT") +test_dwim("20021119T070403 GMT","GMT") +test_dwim("20021119T070403") +test_dwim("20021119 070403 GMT","GMT") +test_dwim("20021119 070403") define(test_http,[[ test_eq(Calendar.ISO.http_time($1)->format_time(),$2) -- GitLab