diff --git a/ChangeLog b/ChangeLog index 7ff5026b551ea8..d78b1f81f95954 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Jan 19 07:53:09 2012 Tadayoshi Funaba + + * ext/date/date_strptime.c: moved detector of leftover. + Thu Jan 19 07:10:47 2012 Tadayoshi Funaba * ext/date/date_parse.c: [ruby-core:42173]. diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c index 80b9e032783bb9..eaec8e716b87b9 100644 --- a/ext/date/date_strptime.c +++ b/ext/date/date_strptime.c @@ -1,5 +1,5 @@ /* - date_strptime.c: Coded by Tadayoshi Funaba 2011 + date_strptime.c: Coded by Tadayoshi Funaba 2011,2012 */ #include "ruby.h" @@ -641,15 +641,6 @@ date__strptime_internal(const char *str, size_t slen, } } - { - VALUE s; - - if (slen > si) { - s = rb_usascii_str_new(&str[si], slen - si); - set_hash("leftover", s); - } - } - return si; } @@ -657,9 +648,17 @@ VALUE date__strptime(const char *str, size_t slen, const char *fmt, size_t flen, VALUE hash) { + size_t si; VALUE cent, merid; - date__strptime_internal(str, slen, fmt, flen, hash); + si = date__strptime_internal(str, slen, fmt, flen, hash); + + if (slen > si) { + VALUE s; + + s = rb_usascii_str_new(&str[si], slen - si); + set_hash("leftover", s); + } if (fail_p()) return Qnil;