diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-12-25 16:19:33 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-12-25 18:03:50 +0900 |
commit | 0867b638aff9ec192ca420a44ffa5a77c892e8f2 (patch) | |
tree | 18cce52d58e097d492f22ed701e6b462ef837c65 /time.c | |
parent | 42eb9bf37ac42cc792d619e28d153c164a5e6604 (diff) | |
download | ruby-0867b638aff9ec192ca420a44ffa5a77c892e8f2.tar.gz |
Raise proper exception when month argument is not a name
https://bugs.ruby-lang.org/issues/17485#change-89871
Diffstat (limited to 'time.c')
-rw-r--r-- | time.c | 12 |
1 files changed, 3 insertions, 9 deletions
@@ -2789,9 +2789,10 @@ month_arg(VALUE arg) return obj2ubits(arg, 4); } + mon = 0; VALUE s = rb_check_string_type(arg); if (!NIL_P(s) && RSTRING_LEN(s) > 0) { - mon = 0; + arg = s; for (i=0; i<12; i++) { if (RSTRING_LEN(s) == 3 && STRNCASECMP(months[i], RSTRING_PTR(s), 3) == 0) { @@ -2799,15 +2800,8 @@ month_arg(VALUE arg) break; } } - if (mon == 0) { - char c = RSTRING_PTR(s)[0]; - - if ('0' <= c && c <= '9') { - mon = obj2ubits(s, 4); - } - } } - else { + if (mon == 0) { mon = obj2ubits(arg, 4); } return mon; |