diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-10-30 01:10:16 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-12-18 02:58:49 +0000 |
commit | 49dc424ff304149a847880f7c6c19179668f94de (patch) | |
tree | 90a3008d7dbe2eb2d678d96057806f5378df8002 /ext | |
parent | 70c905963e71667c1c8b131f290f1d5436d104e0 (diff) |
[ruby/date] Remove `extz_pats` table
https://github.com/ruby/date/commit/945e26e243
Diffstat (limited to 'ext')
-rw-r--r-- | ext/date/date_strptime.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c index 53b48d5105..7d61347c31 100644 --- a/ext/date/date_strptime.c +++ b/ext/date/date_strptime.c @@ -18,12 +18,6 @@ static const char *month_names[] = { "October", "November", "December", }; -static const char *extz_pats[] = { - ":z", - "::z", - ":::z" -}; - #define sizeof_array(o) (sizeof o / sizeof o[0]) #define f_negate(x) rb_funcall(x, rb_intern("-@"), 0) @@ -185,12 +179,11 @@ date__strptime_internal(const char *str, size_t slen, { int i; - for (i = 0; i < (int)sizeof_array(extz_pats); i++) - if (strncmp(extz_pats[i], &fmt[fi], - strlen(extz_pats[i])) == 0) { - fi += i; - goto again; - } + for (i = 1; i < 3 && fi + i < flen && fmt[fi+i] == ':'; ++i); + if (fmt[fi+i] == 'z') { + fi += i - 1; + goto again; + } fail(); } |