diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-21 18:16:00 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-21 18:16:00 +0000 |
commit | ff7772062f4c10d88249a155dfd918a385dda577 (patch) | |
tree | b14c0ae465a4a0166c79b03e51720565bb1f5d70 | |
parent | 7234f04b4243066130435480b94899e11f5dd236 (diff) |
date_parse.c: missing wday
* ext/date/date_parse.c (rfc2822_cb): check if wday is given, since it
can be omitted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/date/date_parse.c | 4 | ||||
-rw-r--r-- | test/date/test_date_parse.rb | 6 |
3 files changed, 14 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Jul 22 03:15:54 2013 Nobuyoshi Nakada <[email protected]> + + * ext/date/date_parse.c (rfc2822_cb): check if wday is given, since it + can be omitted. + Mon Jul 22 00:15:20 2013 Tanaka Akira <[email protected]> * bignum.c (bary_sq_fast): Refine expressions. diff --git a/ext/date/date_parse.c b/ext/date/date_parse.c index 765f9a7292..29dbb239bb 100644 --- a/ext/date/date_parse.c +++ b/ext/date/date_parse.c @@ -2848,7 +2848,9 @@ rfc2822_cb(VALUE m, VALUE hash) s[i] = rb_reg_nth_match(i, m); } - set_hash("wday", INT2FIX(day_num(s[1]))); + if (!NIL_P(s[1])) { + set_hash("wday", INT2FIX(day_num(s[1]))); + } set_hash("mday", str2num(s[2])); set_hash("mon", INT2FIX(mon_num(s[3]))); y = str2num(s[4]); diff --git a/test/date/test_date_parse.rb b/test/date/test_date_parse.rb index a3ade3f86b..30976067a4 100644 --- a/test/date/test_date_parse.rb +++ b/test/date/test_date_parse.rb @@ -1062,10 +1062,16 @@ class TestDateParse < Test::Unit::TestCase d = Date.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700', Date::ITALY + 10) assert_equal(Date.new(2001,2,3), d) assert_equal(Date::ITALY + 10, d.start) + d = Date.rfc2822('3 Feb 2001 04:05:06 +0700', Date::ITALY + 10) + assert_equal(Date.new(2001,2,3), d) + assert_equal(Date::ITALY + 10, d.start) d = DateTime.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700', Date::ITALY + 10) assert_equal(DateTime.new(2001,2,3,4,5,6,'+07:00'), d) assert_equal(Date::ITALY + 10, d.start) + d = DateTime.rfc2822('3 Feb 2001 04:05:06 +0700', Date::ITALY + 10) + assert_equal(DateTime.new(2001,2,3,4,5,6,'+07:00'), d) + assert_equal(Date::ITALY + 10, d.start) end def test_httpdate |