From f738dbe86a2c3afe65096855055f2d7500d17d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 27 Jun 2012 23:00:08 +0100 Subject: [PATCH] datetime: ignore 0 days or months in dates Handle 0 months or days correctly in date strings, so that 2012-06-00 is parsed the same as 2012-06, for example. --- gst/gstdatetime.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c index a4f714b93a..ca792043b5 100644 --- a/gst/gstdatetime.c +++ b/gst/gstdatetime.c @@ -711,6 +711,20 @@ gst_date_time_new_from_iso8601_string (const gchar * string) if (ret == 0) return NULL; + + if (ret == 3 && day <= 0) { + ret = 2; + day = -1; + } + + if (ret >= 2 && month <= 0) { + ret = 1; + month = day = -1; + } + + if (ret >= 1 && year <= 0) + return NULL; + else if (ret >= 1 && len < 16) /* YMD is 10 chars. XMD + HM will be 16 chars. if it is less, * it make no sense to continue. We will stay with YMD. */