From 75fb0a9afad1685cedee9c7665a7f30ec95068fc Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 16 Jul 2019 09:30:58 +0900 Subject: Allow mday in Date.iso8601 to be omitted [Bug #12285] --- ext/date/date_parse.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'ext/date/date_parse.c') diff --git a/ext/date/date_parse.c b/ext/date/date_parse.c index e0634c39f1..ab46bda4ad 100644 --- a/ext/date/date_parse.c +++ b/ext/date/date_parse.c @@ -2262,8 +2262,8 @@ iso8601_ext_datetime_cb(VALUE m, VALUE hash) s[i] = rb_reg_nth_match(i, m); } - if (!NIL_P(s[3])) { - set_hash("mday", str2num(s[3])); + if (!NIL_P(s[1])) { + if (!NIL_P(s[3])) set_hash("mday", str2num(s[3])); if (strcmp(RSTRING_PTR(s[1]), "-") != 0) { y = str2num(s[1]); if (RSTRING_LEN(s[1]) < 4) @@ -2320,7 +2320,7 @@ static int iso8601_ext_datetime(VALUE str, VALUE hash) { static const char pat_source[] = - "\\A\\s*(?:([-+]?\\d{2,}|-)-(\\d{2})?-(\\d{2})|" + "\\A\\s*(?:([-+]?\\d{2,}|-)-(\\d{2})?(?:-(\\d{2}))?|" "([-+]?\\d{2,})?-(\\d{3})|" "(\\d{4}|\\d{2})?-w(\\d{2})-(\\d)|" "-w-(\\d))" -- cgit v1.2.3