summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-30 01:10:16 +0900
committergit <svn-admin@ruby-lang.org>2022-12-18 02:58:49 +0000
commit49dc424ff304149a847880f7c6c19179668f94de (patch)
tree90a3008d7dbe2eb2d678d96057806f5378df8002 /ext
parent70c905963e71667c1c8b131f290f1d5436d104e0 (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.c17
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();
}