summaryrefslogtreecommitdiff
path: root/ext/date
diff options
context:
space:
mode:
Diffstat (limited to 'ext/date')
-rw-r--r--ext/date/date_core.c14
-rw-r--r--ext/date/date_parse.c8
-rw-r--r--ext/date/date_strptime.c5
3 files changed, 14 insertions, 13 deletions
diff --git a/ext/date/date_core.c b/ext/date/date_core.c
index 6c435a869f..040bfa3a15 100644
--- a/ext/date/date_core.c
+++ b/ext/date/date_core.c
@@ -591,6 +591,12 @@ jd_to_wday(long jd)
return (int)MOD(jd + 1, 7);
}
+VALUE
+date_zone_to_diff(VALUE s)
+{
+ return rb_funcall(cDate, rb_intern("zone_to_diff"), 1, s);
+}
+
static int
daydiff_to_sec(VALUE vof, int *rof)
{
@@ -635,7 +641,7 @@ daydiff_to_sec(VALUE vof, int *rof)
}
case T_STRING:
{
- VALUE vs = rb_funcall(cDate, rb_intern("zone_to_diff"), 1, vof);
+ VALUE vs = date_zone_to_diff(vof);
int n;
if (!FIXNUM_P(vs))
@@ -1472,12 +1478,6 @@ date_s_today(int argc, VALUE *argv, VALUE klass)
}
VALUE
-zone_to_diff(VALUE s)
-{
- return rb_funcall(cDate, rb_intern("zone_to_diff"), 1, s);
-}
-
-VALUE
date__strptime(const char *str, size_t slen,
const char *fmt, size_t flen, VALUE hash);
diff --git a/ext/date/date_parse.c b/ext/date/date_parse.c
index 7007163a85..76642c4be5 100644
--- a/ext/date/date_parse.c
+++ b/ext/date/date_parse.c
@@ -914,6 +914,8 @@ n2i(const char *s, long f, long w)
return v;
}
+VALUE date_zone_to_diff(VALUE);
+
static int
parse_ddd_cb(VALUE m, VALUE hash)
{
@@ -1080,7 +1082,6 @@ parse_ddd_cb(VALUE m, VALUE hash)
f_expt(INT2FIX(10), LONG2NUM(l4))));
}
if (!NIL_P(s5)) {
- VALUE zone_to_diff(VALUE s);
cs5 = RSTRING_PTR(s5);
l5 = RSTRING_LEN(s5);
@@ -1108,7 +1109,7 @@ parse_ddd_cb(VALUE m, VALUE hash)
set_hash("zone", zone);
if (isdigit(*s1))
*--s1 = '+';
- set_hash("offset", zone_to_diff(rb_str_new2(s1)));
+ set_hash("offset", date_zone_to_diff(rb_str_new2(s1)));
}
}
@@ -1231,7 +1232,6 @@ check_class(VALUE s)
VALUE
date__parse(VALUE str, VALUE comp)
{
- VALUE zone_to_diff(VALUE s);
VALUE backref, hash;
backref = rb_backref_get();
@@ -1325,7 +1325,7 @@ date__parse(VALUE str, VALUE comp)
{
VALUE zone = ref_hash("zone");
if (!NIL_P(zone) && NIL_P(ref_hash("offset")))
- set_hash("offset", zone_to_diff(zone));
+ set_hash("offset", date_zone_to_diff(zone));
}
rb_backref_set(backref);
diff --git a/ext/date/date_strptime.c b/ext/date/date_strptime.c
index 548e6a656d..fdc75660ab 100644
--- a/ext/date/date_strptime.c
+++ b/ext/date/date_strptime.c
@@ -150,6 +150,8 @@ valid_range_p(VALUE v, int a, int b)
si += l; \
}
+VALUE date_zone_to_diff(VALUE);
+
static size_t
date__strptime_internal(const char *str, size_t slen,
const char *fmt, size_t flen, VALUE hash)
@@ -567,7 +569,6 @@ date__strptime_internal(const char *str, size_t slen,
")";
static VALUE pat = Qnil;
VALUE m, b;
- VALUE zone_to_diff(VALUE s);
if (NIL_P(pat)) {
pat = rb_reg_new(pat_source, sizeof pat_source - 1,
@@ -584,7 +585,7 @@ date__strptime_internal(const char *str, size_t slen,
s = f_aref(m, INT2FIX(1));
l = f_end(m, INT2FIX(0));
- o = zone_to_diff(s);
+ o = date_zone_to_diff(s);
si += NUM2LONG(l);
set_hash("zone", s);
set_hash("offset", o);