Just copy tzmode
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d8104d73d1
commit
093398f979
20
time.c
20
time.c
@ -3882,28 +3882,18 @@ time_to_s(VALUE time)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
time_add(struct time_object *tobj, VALUE torig, VALUE offset, int sign)
|
time_add(const struct time_object *tobj, VALUE torig, VALUE offset, int sign)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
|
struct time_object *result_tobj;
|
||||||
|
|
||||||
offset = num_exact(offset);
|
offset = num_exact(offset);
|
||||||
if (sign < 0)
|
if (sign < 0)
|
||||||
result = time_new_timew(rb_cTime, wsub(tobj->timew, rb_time_magnify(v2w(offset))));
|
result = time_new_timew(rb_cTime, wsub(tobj->timew, rb_time_magnify(v2w(offset))));
|
||||||
else
|
else
|
||||||
result = time_new_timew(rb_cTime, wadd(tobj->timew, rb_time_magnify(v2w(offset))));
|
result = time_new_timew(rb_cTime, wadd(tobj->timew, rb_time_magnify(v2w(offset))));
|
||||||
if (TZMODE_UTC_P(tobj)) {
|
GetTimeval(result, result_tobj);
|
||||||
GetTimeval(result, tobj);
|
TZMODE_COPY(result_tobj, tobj);
|
||||||
TZMODE_SET_UTC(tobj);
|
|
||||||
}
|
|
||||||
else if (TZMODE_FIXOFF_P(tobj)) {
|
|
||||||
VALUE off = tobj->vtm.utc_offset;
|
|
||||||
GetTimeval(result, tobj);
|
|
||||||
TZMODE_SET_FIXOFF(tobj, off);
|
|
||||||
}
|
|
||||||
else if (TZMODE_LOCALTIME_P(tobj)) {
|
|
||||||
VALUE zone = tobj->vtm.zone;
|
|
||||||
GetTimeval(result, tobj);
|
|
||||||
tobj->vtm.zone = zone;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user