From bb05bcde0173ef3d53b0604cfda2e7624b897990 Mon Sep 17 00:00:00 2001 From: tadf Date: Sun, 27 Apr 2014 10:44:23 +0000 Subject: * ext/date/date_strptime.c (date__strptime_internal): do not overwrite century. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/date/date_strptime.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'ext/date/date_strptime.c') diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c index 3e1b0f85ea..e318af19f3 100644 --- a/ext/date/date_strptime.c +++ b/ext/date/date_strptime.c @@ -291,8 +291,9 @@ date__strptime_internal(const char *str, size_t slen, if (!valid_range_p(n, 0, 99)) fail(); set_hash("cwyear",n); - set_hash("_cent", - INT2FIX(f_ge_p(n, INT2FIX(69)) ? 19 : 20)); + if (NIL_P(ref_hash("_cent"))) + set_hash("_cent", + INT2FIX(f_ge_p(n, INT2FIX(69)) ? 19 : 20)); goto matched; } @@ -556,8 +557,9 @@ date__strptime_internal(const char *str, size_t slen, if (sign == -1) n = f_negate(n); set_hash("year", n); - set_hash("_cent", - INT2FIX(f_ge_p(n, INT2FIX(69)) ? 19 : 20)); + if (NIL_P(ref_hash("_cent"))) + set_hash("_cent", + INT2FIX(f_ge_p(n, INT2FIX(69)) ? 19 : 20)); goto matched; } -- cgit v1.2.3