#include "ruby/ruby.h"
#include <sys/types.h>
#include <time.h>
#include <errno.h>
#include "ruby/encoding.h"
#include <float.h>
#include <math.h>
#include "timev.h"
Go to the source code of this file.
Data Structures | |
struct | time_object |
Defines | |
#define | NDIV(x, y) (-(-((x)+1)/(y))-1) |
#define | NMOD(x, y) ((y)-(-((x)+1)%(y))-1) |
#define | DIV(n, d) ((n)<0 ? NDIV((n),(d)) : (n)/(d)) |
#define | MOD(n, d) ((n)<0 ? NMOD((n),(d)) : (n)%(d)) |
#define | ne(x, y) (!eq((x),(y))) |
#define | lt(x, y) (cmp((x),(y)) < 0) |
#define | gt(x, y) (cmp((x),(y)) > 0) |
#define | le(x, y) (cmp((x),(y)) <= 0) |
#define | ge(x, y) (cmp((x),(y)) >= 0) |
#define | div(x, y) (rb_funcall((x), id_div, 1, (y))) |
#define | neg(x) (sub(INT2FIX(0), (x))) |
#define | lshift(x, y) (rb_funcall((x), id_lshift, 1, (y))) |
#define | mulquo(x, y, z) (((y) == (z)) ? (x) : quo(mul((x),(y)),(z))) |
#define | WIDEVALUE_IS_WIDER 0 |
#define | UWIDEINT_MAX ULONG_MAX |
#define | WIDEINT_MAX LONG_MAX |
#define | WIDEINT_MIN LONG_MIN |
#define | FIXWINT_P(v) FIXNUM_P(v) |
#define | FIXWV_MAX FIXNUM_MAX |
#define | FIXWV_MIN FIXNUM_MIN |
#define | FIXWVABLE(i) FIXABLE(i) |
#define | WINT2FIXWV(i) WIDEVAL_WRAP(LONG2FIX(i)) |
#define | FIXWV2WINT(w) FIX2LONG(WIDEVAL_GET(w)) |
#define | POSFIXWVABLE(wi) ((wi) < FIXWV_MAX+1) |
#define | NEGFIXWVABLE(wi) ((wi) >= FIXWV_MIN) |
#define | FIXWV_P(w) FIXWINT_P(WIDEVAL_GET(w)) |
#define | WIDEVAL_WRAP(v) (v) |
#define | WIDEVAL_GET(w) (w) |
#define | WINT2WV(wi) WIDEVAL_WRAP(LONG2NUM(wi)) |
#define | wne(x, y) (!weq((x),(y))) |
#define | wlt(x, y) (wcmp((x),(y)) < 0) |
#define | wgt(x, y) (wcmp((x),(y)) > 0) |
#define | wle(x, y) (wcmp((x),(y)) <= 0) |
#define | wge(x, y) (wcmp((x),(y)) >= 0) |
#define | wmulquo(x, y, z) ((WIDEVAL_GET(y) == WIDEVAL_GET(z)) ? (x) : wquo(wmul((x),(y)),(z))) |
#define | wmulquoll(x, y, z) (((y) == (z)) ? (x) : wquo(wmul((x),WINT2WV(y)),WINT2WV(z))) |
#define | TYPEOF_TIMEVAL_TV_SEC time_t |
#define | TYPEOF_TIMEVAL_TV_USEC long |
#define | TIMET_MAX (~(time_t)0 <= 0 ? (time_t)((~(unsigned_time_t)0) >> 1) : (time_t)(~(unsigned_time_t)0)) |
#define | TIMET_MIN (~(time_t)0 <= 0 ? (time_t)(((unsigned_time_t)1) << (sizeof(time_t) * CHAR_BIT - 1)) : (time_t)0) |
#define | TIMET2WV(t) timet2wv(t) |
#define | WV2TIMET(t) wv2timet(t) |
#define | leap_year_v_p(y) leap_year_p(NUM2LONG(mod((y), INT2FIX(400)))) |
#define | LOCALTIME(tm, result) (tzset(),rb_localtime_r2((tm), &(result))) |
#define | GMTIME(tm, result) rb_gmtime_r2((tm), &(result)) |
#define | GetTimeval(obj, tobj) TypedData_Get_Struct((obj), struct time_object, &time_data_type, (tobj)) |
#define | IsTimeval(obj) rb_typeddata_is_kind_of((obj), &time_data_type) |
#define | TIME_UTC_P(tobj) ((tobj)->gmt == 1) |
#define | TIME_SET_UTC(tobj) ((tobj)->gmt = 1) |
#define | TIME_LOCALTIME_P(tobj) ((tobj)->gmt == 0) |
#define | TIME_SET_LOCALTIME(tobj) ((tobj)->gmt = 0) |
#define | TIME_FIXOFF_P(tobj) ((tobj)->gmt == 2) |
#define | TIME_SET_FIXOFF(tobj, off) |
#define | TIME_COPY_GMT(tobj1, tobj2) ((tobj1)->gmt = (tobj2)->gmt) |
#define | MAKE_TM(time, tobj) |
#define | DEBUG_REPORT_GUESSRANGE |
#define | DEBUG_FIND_TIME_NUMGUESS_INC |
#define | GUESS(p) (DEBUG_FIND_TIME_NUMGUESS_INC (utc_p ? gmtime_with_leapsecond((p), &result) : LOCALTIME((p), result))) |
#define | time_succ rb_time_succ |
#define | wday_p(n) |
#define | SMALLBUF 100 |
#define | rb_intern(str) rb_intern_const(str) |
Typedefs | |
typedef unsigned long | uwideint_t |
typedef long | wideint_t |
typedef VALUE | WIDEVALUE |
typedef SIGNED_VALUE | SIGNED_WIDEVALUE |
typedef WIDEVALUE | wideval_t |
typedef unsigned long | unsigned_time_t |
Functions | |
static int | eq (VALUE x, VALUE y) |
static int | cmp (VALUE x, VALUE y) |
static VALUE | add (VALUE x, VALUE y) |
static VALUE | sub (VALUE x, VALUE y) |
static int | long_mul (long x, long y, long *z) |
static VALUE | mul (VALUE x, VALUE y) |
static VALUE | mod (VALUE x, VALUE y) |
static VALUE | quo (VALUE x, VALUE y) |
static void | divmodv (VALUE n, VALUE d, VALUE *q, VALUE *r) |
static VALUE | w2v (wideval_t w) |
static wideval_t | v2w (VALUE v) |
static int | weq (wideval_t wx, wideval_t wy) |
static int | wcmp (wideval_t wx, wideval_t wy) |
static wideval_t | wadd (wideval_t wx, wideval_t wy) |
static wideval_t | wsub (wideval_t wx, wideval_t wy) |
static int | wi_mul (wideint_t x, wideint_t y, wideint_t *z) |
static wideval_t | wmul (wideval_t wx, wideval_t wy) |
static wideval_t | wquo (wideval_t wx, wideval_t wy) |
static void | wdivmod (wideval_t wn, wideval_t wd, wideval_t *wq, wideval_t *wr) |
static void | wmuldivmod (wideval_t wx, wideval_t wy, wideval_t wz, wideval_t *wq, wideval_t *wr) |
static wideval_t | wdiv (wideval_t wx, wideval_t wy) |
static wideval_t | wmod (wideval_t wx, wideval_t wy) |
static VALUE | num_exact (VALUE v) |
static wideval_t | rb_time_magnify (wideval_t w) |
static wideval_t | rb_time_unmagnify (wideval_t w) |
static VALUE | rb_time_unmagnify_to_float (wideval_t w) |
static void | split_second (wideval_t timew, wideval_t *timew_p, VALUE *subsecx_p) |
static wideval_t | timet2wv (time_t t) |
static time_t | wv2timet (wideval_t w) |
static VALUE time_utc_offset | _ ((VALUE)) |
static int | obj2int (VALUE obj) |
static VALUE | obj2vint (VALUE obj) |
static int | month_arg (VALUE arg) |
static void | validate_utc_offset (VALUE utc_offset) |
static void | validate_vtm (struct vtm *vtm) |
static VALUE | time_gmtime (VALUE) |
static VALUE | time_localtime (VALUE) |
static VALUE | time_fixoff (VALUE) |
static time_t | timegm_noleapsecond (struct tm *tm) |
static int | tmcmp (struct tm *a, struct tm *b) |
static int | vtmcmp (struct vtm *a, struct vtm *b) |
static const char * | find_time_t (struct tm *tptr, int utc_p, time_t *tp) |
static struct vtm * | localtimew (wideval_t timew, struct vtm *result) |
static int | leap_year_p (long y) |
static struct tm * | rb_gmtime_r (const time_t *tp, struct tm *result) |
static struct tm * | rb_localtime_r (const time_t *tp, struct tm *result) |
static struct tm * | rb_localtime_r2 (const time_t *t, struct tm *result) |
static struct tm * | rb_gmtime_r2 (const time_t *t, struct tm *result) |
static int | calc_tm_yday (long tm_year, int tm_mon, int tm_mday) |
static wideval_t | timegmw_noleapsecond (struct vtm *vtm) |
static const char * | zone_str (const char *s) |
static void | gmtimew_noleapsecond (wideval_t timew, struct vtm *vtm) |
static struct tm * | gmtime_with_leapsecond (const time_t *timep, struct tm *result) |
static void | init_leap_second_info () |
static wideval_t | timegmw (struct vtm *vtm) |
static struct vtm * | gmtimew (wideval_t timew, struct vtm *result) |
static struct tm * | localtime_with_gmtoff_zone (const time_t *t, struct tm *result, long *gmtoff, const char **zone) |
static int | calc_wday (int year, int month, int day) |
static VALUE | guess_local_offset (struct vtm *vtm_utc, int *isdst_ret, const char **zone_ret) |
static VALUE | small_vtm_sub (struct vtm *vtm1, struct vtm *vtm2) |
static wideval_t | timelocalw (struct vtm *vtm) |
static int | timew_out_of_timet_range (wideval_t timew) |
static VALUE | time_get_tm (VALUE, struct time_object *) |
static void | time_mark (void *ptr) |
static void | time_free (void *tobj) |
static size_t | time_memsize (const void *tobj) |
static VALUE | time_s_alloc (VALUE klass) |
static void | time_modify (VALUE time) |
static wideval_t | timespec2timew (struct timespec *ts) |
static struct timespec | timew2timespec (wideval_t timew) |
static struct timespec * | timew2timespec_exact (wideval_t timew, struct timespec *ts) |
static VALUE | time_init_0 (VALUE time) |
static VALUE | time_set_utc_offset (VALUE time, VALUE off) |
static void | vtm_add_offset (struct vtm *vtm, VALUE off) |
static VALUE | utc_offset_arg (VALUE arg) |
static VALUE | time_init_1 (int argc, VALUE *argv, VALUE time) |
static VALUE | time_init (int argc, VALUE *argv, VALUE time) |
static void | time_overflow_p (time_t *secp, long *nsecp) |
static wideval_t | nsec2timew (time_t sec, long nsec) |
static VALUE | time_new_timew (VALUE klass, wideval_t timew) |
VALUE | rb_time_new (time_t sec, long usec) |
VALUE | rb_time_nano_new (time_t sec, long nsec) |
VALUE | rb_time_num_new (VALUE timev, VALUE off) |
static struct timespec | time_timespec (VALUE num, int interval) |
static struct timeval | time_timeval (VALUE num, int interval) |
struct timeval | rb_time_interval (VALUE num) |
struct timeval | rb_time_timeval (VALUE time) |
struct timespec | rb_time_timespec (VALUE time) |
static VALUE | time_s_now (VALUE klass) |
static VALUE | time_s_at (int argc, VALUE *argv, VALUE klass) |
static int | obj2subsecx (VALUE obj, VALUE *subsecx) |
static long | usec2subsecx (VALUE obj) |
static void | time_arg (int argc, VALUE *argv, struct vtm *vtm) |
static VALUE | time_utc_or_local (int argc, VALUE *argv, int utc_p, VALUE klass) |
static VALUE | time_s_mkutc (int argc, VALUE *argv, VALUE klass) |
static VALUE | time_s_mktime (int argc, VALUE *argv, VALUE klass) |
static VALUE | time_to_i (VALUE time) |
static VALUE | time_to_f (VALUE time) |
static VALUE | time_to_r (VALUE time) |
static VALUE | time_usec (VALUE time) |
static VALUE | time_nsec (VALUE time) |
static VALUE | time_subsec (VALUE time) |
static VALUE | time_cmp (VALUE time1, VALUE time2) |
static VALUE | time_eql (VALUE time1, VALUE time2) |
static VALUE | time_utc_p (VALUE time) |
static VALUE | time_hash (VALUE time) |
static VALUE | time_init_copy (VALUE copy, VALUE time) |
static VALUE | time_dup (VALUE time) |
static VALUE | time_localtime_m (int argc, VALUE *argv, VALUE time) |
static VALUE | time_getlocaltime (int argc, VALUE *argv, VALUE time) |
static VALUE | time_getgmtime (VALUE time) |
static VALUE | strftimev (const char *fmt, VALUE time) |
static VALUE | time_asctime (VALUE time) |
static VALUE | time_to_s (VALUE time) |
static VALUE | time_add (struct time_object *tobj, VALUE offset, int sign) |
static VALUE | time_plus (VALUE time1, VALUE time2) |
static VALUE | time_minus (VALUE time1, VALUE time2) |
VALUE | rb_time_succ (VALUE time) |
static VALUE | time_round (int argc, VALUE *argv, VALUE time) |
static VALUE | time_sec (VALUE time) |
static VALUE | time_min (VALUE time) |
static VALUE | time_hour (VALUE time) |
static VALUE | time_mday (VALUE time) |
static VALUE | time_mon (VALUE time) |
static VALUE | time_year (VALUE time) |
static VALUE | time_wday (VALUE time) |
static VALUE | time_sunday (VALUE time) |
static VALUE | time_monday (VALUE time) |
static VALUE | time_tuesday (VALUE time) |
static VALUE | time_wednesday (VALUE time) |
static VALUE | time_thursday (VALUE time) |
static VALUE | time_friday (VALUE time) |
static VALUE | time_saturday (VALUE time) |
static VALUE | time_yday (VALUE time) |
static VALUE | time_isdst (VALUE time) |
static VALUE | time_zone (VALUE time) |
static VALUE | time_utc_offset (VALUE time) |
static VALUE | time_to_a (VALUE time) |
size_t | rb_strftime (char *s, size_t maxsize, const char *format, const struct vtm *vtm, VALUE timev, int gmt) |
size_t | rb_strftime_timespec (char *s, size_t maxsize, const char *format, const struct vtm *vtm, struct timespec *ts, int gmt) |
static size_t | rb_strftime_alloc (char **buf, const char *format, struct vtm *vtm, wideval_t timew, int gmt) |
static VALUE | time_strftime (VALUE time, VALUE format) |
static VALUE | time_mdump (VALUE time) |
static VALUE | time_dump (int argc, VALUE *argv, VALUE time) |
static VALUE | time_mload (VALUE time, VALUE str) |
static VALUE | time_load (VALUE klass, VALUE str) |
void | Init_Time (void) |
Variables | |
static ID | id_divmod |
static ID | id_mul |
static ID | id_submicro |
static ID | id_nano_num |
static ID | id_nano_den |
static ID | id_offset |
static ID | id_eq |
static ID | id_ne |
static ID | id_quo |
static ID | id_div |
static ID | id_cmp |
static ID | id_lshift |
VALUE | rb_cTime |
static const int | common_year_yday_offset [] |
static const int | leap_year_yday_offset [] |
static const int | common_year_days_in_month [] |
static const int | leap_year_days_in_month [] |
static st_table * | zone_table |
static long | this_year = 0 |
static time_t | known_leap_seconds_limit |
static int | number_of_leap_seconds_known |
static int | compat_common_month_table [12][7] |
static int | compat_leap_month_table [7] |
static const rb_data_type_t | time_data_type |
static const char | months [][4] |
#define div | ( | x, | ||
y | ||||
) | (rb_funcall((x), id_div, 1, (y))) |
Definition at line 151 of file time.c.
Referenced by time_mdump().
#define DIV | ( | n, | ||
d | ||||
) | ((n)<0 ? NDIV((n),(d)) : (n)/(d)) |
Definition at line 32 of file time.c.
Referenced by timegm_noleapsecond(), timegmw_noleapsecond(), and vm_init_redefined_flag().
#define FIXWV2WINT | ( | w | ) | FIX2LONG(WIDEVAL_GET(w)) |
Definition at line 242 of file time.c.
Referenced by rb_time_magnify(), rb_time_unmagnify(), rb_time_unmagnify_to_float(), timew_out_of_timet_range(), w2v(), wadd(), wcmp(), wdivmod(), wmul(), wquo(), wsub(), and wv2timet().
#define FIXWV_MAX FIXNUM_MAX |
Definition at line 238 of file time.c.
Referenced by timet2wv().
#define FIXWV_MIN FIXNUM_MIN |
Definition at line 239 of file time.c.
Referenced by timet2wv().
#define FIXWV_P | ( | w | ) | FIXWINT_P(WIDEVAL_GET(w)) |
Definition at line 247 of file time.c.
Referenced by rb_time_magnify(), rb_time_unmagnify(), rb_time_unmagnify_to_float(), time_mark(), timew_out_of_timet_range(), w2v(), wadd(), wcmp(), wdivmod(), weq(), wmul(), wquo(), wsub(), and wv2timet().
#define ge | ( | x, | ||
y | ||||
) | (cmp((x),(y)) >= 0) |
Definition at line 61 of file time.c.
Referenced by validate_utc_offset(), and validate_vtm().
#define GetTimeval | ( | obj, | ||
tobj | ||||
) | TypedData_Get_Struct((obj), struct time_object, &time_data_type, (tobj)) |
Definition at line 1796 of file time.c.
Referenced by rb_time_succ(), rb_time_timespec(), rb_time_timeval(), strftimev(), time_add(), time_asctime(), time_cmp(), time_eql(), time_fixoff(), time_gmtime(), time_hash(), time_hour(), time_init_0(), time_init_1(), time_init_copy(), time_isdst(), time_localtime(), time_mday(), time_mdump(), time_min(), time_minus(), time_mload(), time_mon(), time_new_timew(), time_nsec(), time_plus(), time_round(), time_s_at(), time_sec(), time_set_utc_offset(), time_strftime(), time_subsec(), time_to_a(), time_to_f(), time_to_i(), time_to_r(), time_to_s(), time_usec(), time_utc_offset(), time_utc_p(), time_wday(), time_yday(), time_year(), and time_zone().
Definition at line 922 of file time.c.
Referenced by gmtime_with_leapsecond(), and localtime_with_gmtoff_zone().
#define gt | ( | x, | ||
y | ||||
) | (cmp((x),(y)) > 0) |
#define GUESS | ( | p | ) | (DEBUG_FIND_TIME_NUMGUESS_INC (utc_p ? gmtime_with_leapsecond((p), &result) : LOCALTIME((p), result))) |
Referenced by find_time_t().
#define IsTimeval | ( | obj | ) | rb_typeddata_is_kind_of((obj), &time_data_type) |
Definition at line 1799 of file time.c.
Referenced by rb_time_timespec(), rb_time_timeval(), time_cmp(), time_eql(), time_minus(), time_plus(), and time_s_at().
#define le | ( | x, | ||
y | ||||
) | (cmp((x),(y)) <= 0) |
Definition at line 60 of file time.c.
Referenced by timew_out_of_timet_range(), validate_utc_offset(), and vtm_add_offset().
#define leap_year_v_p | ( | y | ) | leap_year_p(NUM2LONG(mod((y), INT2FIX(400)))) |
Definition at line 856 of file time.c.
Referenced by vtm_add_offset().
Definition at line 905 of file time.c.
Referenced by find_time_t(), gmtime_with_leapsecond(), and localtime_with_gmtoff_zone().
#define lt | ( | x, | ||
y | ||||
) | (cmp((x),(y)) < 0) |
Definition at line 58 of file time.c.
Referenced by guess_local_offset(), small_vtm_sub(), time_round(), timelocalw(), timew_out_of_timet_range(), validate_vtm(), vtm_add_offset(), and vtmcmp().
#define MAKE_TM | ( | time, | ||
tobj | ||||
) |
do { \ if ((tobj)->tm_got == 0) { \ time_get_tm((time), (tobj)); \ } \ } while (0)
Definition at line 1816 of file time.c.
Referenced by strftimev(), time_hour(), time_isdst(), time_mday(), time_min(), time_mon(), time_sec(), time_strftime(), time_to_a(), time_utc_offset(), time_wday(), time_yday(), time_year(), and time_zone().
#define MOD | ( | n, | ||
d | ||||
) | ((n)<0 ? NMOD((n),(d)) : (n)%(d)) |
Definition at line 33 of file time.c.
Referenced by calc_tm_yday(), and vm_init_redefined_flag().
#define mulquo | ( | x, | ||
y, | ||||
z | ||||
) | (((y) == (z)) ? (x) : quo(mul((x),(y)),(z))) |
Definition at line 187 of file time.c.
Referenced by time_mdump(), time_mload(), timew2timespec(), timew2timespec_exact(), and usec2subsecx().
#define NDIV | ( | x, | ||
y | ||||
) | (-(-((x)+1)/(y))-1) |
Definition at line 30 of file time.c.
Referenced by time_overflow_p().
#define ne | ( | x, | ||
y | ||||
) | (!eq((x),(y))) |
Definition at line 57 of file time.c.
Referenced by add_ensure_range(), small_vtm_sub(), and vtmcmp().
#define neg | ( | x | ) | (sub(INT2FIX(0), (x))) |
Definition at line 162 of file time.c.
Referenced by asinh(), atanh(), int_pow(), int_round(), parse_enclose(), rb_fix2str(), rb_int2big(), time_init_1(), and vtm_add_offset().
#define NMOD | ( | x, | ||
y | ||||
) | ((y)-(-((x)+1)%(y))-1) |
Definition at line 31 of file time.c.
Referenced by time_overflow_p().
#define rb_intern | ( | str | ) | rb_intern_const(str) |
#define SMALLBUF 100 |
Definition at line 4267 of file time.c.
Referenced by rb_strftime_alloc().
#define TIME_COPY_GMT | ( | tobj1, | ||
tobj2 | ||||
) | ((tobj1)->gmt = (tobj2)->gmt) |
Definition at line 1813 of file time.c.
Referenced by rb_time_succ(), and time_s_at().
#define TIME_FIXOFF_P | ( | tobj | ) | ((tobj)->gmt == 2) |
Definition at line 1807 of file time.c.
Referenced by time_add(), time_fixoff(), and time_get_tm().
#define TIME_LOCALTIME_P | ( | tobj | ) | ((tobj)->gmt == 0) |
Definition at line 1804 of file time.c.
Referenced by time_localtime().
#define TIME_SET_FIXOFF | ( | tobj, | ||
off | ||||
) |
((tobj)->gmt = 2, \ (tobj)->vtm.utc_offset = (off), \ (tobj)->vtm.zone = NULL)
Definition at line 1808 of file time.c.
Referenced by time_add(), time_fixoff(), and time_set_utc_offset().
#define TIME_SET_LOCALTIME | ( | tobj | ) | ((tobj)->gmt = 0) |
Definition at line 1805 of file time.c.
Referenced by time_localtime().
#define TIME_SET_UTC | ( | tobj | ) | ((tobj)->gmt = 1) |
Definition at line 1802 of file time.c.
Referenced by time_add(), time_gmtime(), and time_mload().
#define time_succ rb_time_succ |
Definition at line 3759 of file time.c.
Referenced by Init_Time().
#define TIME_UTC_P | ( | tobj | ) | ((tobj)->gmt == 1) |
Definition at line 1801 of file time.c.
Referenced by strftimev(), time_add(), time_get_tm(), time_gmtime(), time_mdump(), time_strftime(), time_to_s(), time_utc_offset(), time_utc_p(), and time_zone().
#define TIMET2WV | ( | t | ) | timet2wv(t) |
Definition at line 810 of file time.c.
Referenced by gmtimew(), init_leap_second_info(), time_mload(), timegmw(), timelocalw(), and timespec2timew().
#define TIMET_MAX (~(time_t)0 <= 0 ? (time_t)((~(unsigned_time_t)0) >> 1) : (time_t)(~(unsigned_time_t)0)) |
Definition at line 730 of file time.c.
Referenced by init_leap_second_info(), timew_out_of_timet_range(), and wv2timet().
#define TIMET_MIN (~(time_t)0 <= 0 ? (time_t)(((unsigned_time_t)1) << (sizeof(time_t) * CHAR_BIT - 1)) : (time_t)0) |
Definition at line 731 of file time.c.
Referenced by timet2wv(), timew_out_of_timet_range(), and wv2timet().
#define TYPEOF_TIMEVAL_TV_USEC long |
Definition at line 716 of file time.c.
Referenced by rb_time_timeval(), and time_timeval().
#define wday_p | ( | n | ) |
{\ struct time_object *tobj;\ GetTimeval(time, tobj);\ MAKE_TM(time, tobj);\ return (tobj->vtm.wday == (n)) ? Qtrue : Qfalse;\ }
Definition at line 3990 of file time.c.
Referenced by time_friday(), time_monday(), time_saturday(), time_sunday(), time_thursday(), time_tuesday(), and time_wednesday().
#define WIDEVAL_GET | ( | w | ) | (w) |
Definition at line 260 of file time.c.
Referenced by w2v(), weq(), and wmuldivmod().
#define WINT2FIXWV | ( | i | ) | WIDEVAL_WRAP(LONG2FIX(i)) |
Definition at line 241 of file time.c.
Referenced by gmtimew(), gmtimew_noleapsecond(), rb_time_magnify(), rb_time_succ(), rb_time_unmagnify(), split_second(), time_init_0(), time_init_1(), time_mload(), time_s_alloc(), time_subsec(), time_to_i(), time_usec(), timegmw_noleapsecond(), timelocalw(), timet2wv(), wdivmod(), and wmuldivmod().
#define WINT2WV | ( | wi | ) | WIDEVAL_WRAP(LONG2NUM(wi)) |
Definition at line 274 of file time.c.
Referenced by gmtimew(), rb_time_magnify(), time_nsec(), time_usec(), timegmw(), timespec2timew(), wadd(), wdivmod(), wmul(), wquo(), and wsub().
#define wlt | ( | x, | ||
y | ||||
) | (wcmp((x),(y)) < 0) |
#define wmulquo | ( | x, | ||
y, | ||||
z | ||||
) | ((WIDEVAL_GET(y) == WIDEVAL_GET(z)) ? (x) : wquo(wmul((x),(y)),(z))) |
#define wmulquoll | ( | x, | ||
y, | ||||
z | ||||
) | (((y) == (z)) ? (x) : wquo(wmul((x),WINT2WV(y)),WINT2WV(z))) |
Definition at line 558 of file time.c.
Referenced by time_mload(), time_nsec(), time_s_at(), and timespec2timew().
#define WV2TIMET | ( | t | ) | wv2timet(t) |
Definition at line 833 of file time.c.
Referenced by gmtimew(), localtimew(), timew2timespec(), and timew2timespec_exact().
typedef SIGNED_VALUE SIGNED_WIDEVALUE |
typedef unsigned long unsigned_time_t |
typedef unsigned long uwideint_t |
Definition at line 64 of file time.c.
References FIX2LONG, FIXABLE, FIXNUM_P, LONG2FIX, LONG2NUM, rb_big_plus(), rb_funcall(), T_BIGNUM, and TYPE.
Referenced by gmtimew_noleapsecond(), time_mdump(), time_mload(), timegmw_noleapsecond(), timew_out_of_timet_range(), and vtm_add_offset().
static int calc_tm_yday | ( | long | tm_year, | |
int | tm_mon, | |||
int | tm_mday | |||
) | [static] |
Definition at line 964 of file time.c.
References leap_year_p(), and MOD.
Referenced by find_time_t(), and timegmw_noleapsecond().
static int calc_wday | ( | int | year, | |
int | month, | |||
int | day | |||
) | [static] |
Definition at line 1477 of file time.c.
Referenced by guess_local_offset().
Definition at line 45 of file time.c.
References FIXNUM_P, id_cmp, rb_cmpint(), and rb_funcall().
Definition at line 190 of file time.c.
References id_divmod, NIL_P, rb_ary_entry(), rb_check_array_type(), rb_eTypeError, rb_funcall(), rb_obj_classname(), and rb_raise().
Referenced by gmtimew_noleapsecond(), obj2subsecx(), time_init_1(), time_mdump(), timegmw_noleapsecond(), and vtm_add_offset().
static const char * find_time_t | ( | struct tm * | tptr, | |
int | utc_p, | |||
time_t * | tp | |||
) | [static] |
Definition at line 2728 of file time.c.
References calc_tm_yday(), GUESS, leap_year_p(), LOCALTIME, NULL, time_t, timegm_noleapsecond(), and tmcmp().
Referenced by timegmw(), and timelocalw().
static struct tm* gmtime_with_leapsecond | ( | const time_t * | timep, | |
struct tm * | result | |||
) | [static, read] |
Definition at line 1148 of file time.c.
References GMTIME, leap_year_p(), LOCALTIME, and NULL.
Referenced by gmtimew(), and init_leap_second_info().
Definition at line 1353 of file time.c.
References gmtime_with_leapsecond(), gmtimew_noleapsecond(), vtm::hour, init_leap_second_info(), INT2FIX, vtm::isdst, LONG2NUM, vtm::mday, vtm::min, vtm::mon, rb_time_magnify(), vtm::sec, split_second(), vtm::subsecx, time_t, TIMET2WV, vtm::utc_offset, vtm::wday, WINT2FIXWV, WINT2WV, wlt, wsub(), WV2TIMET, vtm::yday, vtm::year, and vtm::zone.
Referenced by localtimew(), time_fixoff(), time_gmtime(), and time_mdump().
Definition at line 1042 of file time.c.
References add(), divmodv(), vtm::hour, INT2FIX, INT2NUM(), vtm::isdst, leap_year_p(), vtm::mday, vtm::min, mod(), vtm::mon, mul(), NUM2INT, vtm::sec, split_second(), vtm::subsecx, vtm::utc_offset, w2v(), vtm::wday, wdivmod(), WINT2FIXWV, vtm::yday, vtm::year, and vtm::zone.
Referenced by gmtimew().
static VALUE guess_local_offset | ( | struct vtm * | vtm_utc, | |
int * | isdst_ret, | |||
const char ** | zone_ret | |||
) | [static] |
Definition at line 1491 of file time.c.
References calc_wday(), INT2FIX, vtm::isdst, leap_year_p(), localtime_with_gmtoff_zone(), LONG2FIX, lt, mod(), vtm::mon, NULL, NUM2INT, rb_time_unmagnify(), time_t, timegmw(), w2v(), vtm::wday, and vtm::year.
Referenced by localtimew().
static void init_leap_second_info | ( | ) | [static] |
Definition at line 1276 of file time.c.
References gmtime_with_leapsecond(), vtm::hour, INT2FIX, LONG2NUM, vtm::mday, vtm::min, vtm::mon, NULL, NUM2INT, rb_time_unmagnify(), result, vtm::sec, vtm::subsecx, time_t, timegmw_noleapsecond(), TIMET2WV, TIMET_MAX, vtm::utc_offset, w2v(), wsub(), and vtm::year.
void Init_Time | ( | void | ) |
Definition at line 4715 of file time.c.
References id_cmp, id_div, id_divmod, id_eq, id_lshift, id_mul, id_nano_den, id_nano_num, id_ne, id_offset, id_quo, id_submicro, NULL, rb_cObject, rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_singleton_method(), rb_define_virtual_variable(), rb_include_module(), rb_intern, rb_mComparable, time_asctime(), time_cmp(), time_dump(), time_eql(), time_friday(), time_getgmtime(), time_getlocaltime(), time_gmtime(), time_hash(), time_hour(), time_init(), time_init_copy(), time_isdst(), time_load(), time_localtime_m(), time_mday(), time_mdump(), time_min(), time_minus(), time_mload(), time_mon(), time_monday(), time_nsec(), time_plus(), time_round(), time_s_alloc(), time_s_at(), time_s_mktime(), time_s_mkutc(), time_s_now(), time_saturday(), time_sec(), time_strftime(), time_subsec(), time_succ, time_sunday(), time_thursday(), time_to_a(), time_to_f(), time_to_i(), time_to_r(), time_to_s(), time_tuesday(), time_usec(), time_utc_offset(), time_utc_p(), time_wday(), time_wednesday(), time_yday(), time_year(), and time_zone().
static int leap_year_p | ( | long | y | ) | [static] |
Definition at line 2675 of file time.c.
Referenced by calc_tm_yday(), find_time_t(), gmtime_with_leapsecond(), gmtimew_noleapsecond(), guess_local_offset(), and timegm_noleapsecond().
static struct tm * localtime_with_gmtoff_zone | ( | const time_t * | t, | |
struct tm * | result, | |||
long * | gmtoff, | |||
const char ** | zone | |||
) | [static, read] |
Definition at line 1670 of file time.c.
References buf, GMTIME, LOCALTIME, and zone_str().
Referenced by guess_local_offset(), and localtimew().
Definition at line 1741 of file time.c.
References gmtimew(), guess_local_offset(), vtm::hour, vtm::isdst, localtime_with_gmtoff_zone(), LONG2NUM, vtm::mday, vtm::min, vtm::mon, rb_time_magnify(), vtm::sec, split_second(), vtm::subsecx, time_t, timew_out_of_timet_range(), vtm::utc_offset, v2w(), wadd(), vtm::wday, WV2TIMET, vtm::yday, vtm::year, and vtm::zone.
Referenced by time_localtime(), and timelocalw().
static int long_mul | ( | long | x, | |
long | y, | |||
long * | z | |||
) | [static] |
Definition at line 154 of file time.c.
References rb_big_modulo(), rb_funcall(), T_BIGNUM, and TYPE.
Referenced by gmtimew_noleapsecond(), guess_local_offset(), and time_round().
static int month_arg | ( | VALUE | arg | ) | [static] |
Definition at line 2557 of file time.c.
References NIL_P, obj2int(), rb_check_string_type(), RSTRING_LEN, RSTRING_PTR, and STRCASECMP.
Referenced by time_arg(), and time_init_1().
Definition at line 132 of file time.c.
References FIX2LONG, FIXABLE, FIXNUM_P, LONG2FIX, LONG2NUM, long_mul(), rb_big_mul(), rb_funcall(), T_BIGNUM, and TYPE.
Referenced by gmtimew_noleapsecond(), time_round(), timegmw_noleapsecond(), and timew_out_of_timet_range().
static wideval_t nsec2timew | ( | time_t | sec, | |
long | nsec | |||
) | [static] |
Definition at line 2273 of file time.c.
References time_overflow_p(), timespec2timew(), timespec::tv_nsec, and timespec::tv_sec.
Referenced by rb_time_nano_new(), and rb_time_new().
Definition at line 657 of file time.c.
References INT2FIX, NIL_P, NULL, Qundef, rb_check_funcall(), rb_check_to_integer(), rb_eTypeError, rb_intern, rb_obj_classname(), rb_raise(), rb_respond_to(), RRATIONAL, T_BIGNUM, T_FIXNUM, T_NIL, T_RATIONAL, T_STRING, and TYPE.
Referenced by obj2subsecx(), time_add(), time_init_1(), time_mload(), time_s_at(), time_set_utc_offset(), usec2subsecx(), and utc_offset_arg().
static int obj2int | ( | VALUE | obj | ) | [static] |
Definition at line 2508 of file time.c.
References FALSE, NUM2INT, rb_str_to_inum(), T_STRING, and TYPE.
Referenced by month_arg(), time_arg(), and time_init_1().
Definition at line 2531 of file time.c.
References divmodv(), FALSE, INT2FIX, NUM2INT, num_exact(), rb_str_to_inum(), rb_time_magnify(), T_STRING, TYPE, v2w(), and w2v().
Referenced by time_arg().
Definition at line 2518 of file time.c.
References FALSE, rb_str_to_inum(), rb_to_int(), T_STRING, and TYPE.
Referenced by time_arg(), and time_init_1().
Definition at line 166 of file time.c.
References FIX2LONG, FIXNUM_P, id_quo, INT2FIX, LONG2NUM, rb_funcall(), rb_num_zerodiv(), RRATIONAL, T_RATIONAL, and TYPE.
Referenced by rb_time_unmagnify_to_float(), time_mload(), time_round(), and time_subsec().
static struct tm* rb_gmtime_r | ( | const time_t * | tp, | |
struct tm * | result | |||
) | [static, read] |
Definition at line 863 of file time.c.
Referenced by rb_gmtime_r2().
static struct tm* rb_gmtime_r2 | ( | const time_t * | t, | |
struct tm * | result | |||
) | [static, read] |
Definition at line 909 of file time.c.
References rb_gmtime_r(), and time_t.
static struct tm* rb_localtime_r | ( | const time_t * | tp, | |
struct tm * | result | |||
) | [static, read] |
Definition at line 871 of file time.c.
Referenced by rb_localtime_r2().
static struct tm* rb_localtime_r2 | ( | const time_t * | t, | |
struct tm * | result | |||
) | [static, read] |
Definition at line 880 of file time.c.
References rb_localtime_r(), and time_t.
size_t rb_strftime | ( | char * | s, | |
size_t | maxsize, | |||
const char * | format, | |||
const struct vtm * | vtm, | |||
VALUE | timev, | |||
int | gmt | |||
) |
Definition at line 894 of file strftime.c.
References NULL, and rb_strftime_with_timespec().
Referenced by rb_strftime_alloc().
static size_t rb_strftime_alloc | ( | char ** | buf, | |
const char * | format, | |||
struct vtm * | vtm, | |||
wideval_t | timew, | |||
int | gmt | |||
) | [static] |
Definition at line 4269 of file time.c.
References errno, Qnil, rb_strftime(), rb_strftime_timespec(), rb_time_unmagnify(), size, SMALLBUF, timew2timespec_exact(), w2v(), xfree(), and xmalloc.
Referenced by strftimev(), and time_strftime().
size_t rb_strftime_timespec | ( | char * | s, | |
size_t | maxsize, | |||
const char * | format, | |||
const struct vtm * | vtm, | |||
struct timespec * | ts, | |||
int | gmt | |||
) |
Definition at line 900 of file strftime.c.
References Qnil, and rb_strftime_with_timespec().
Referenced by rb_strftime_alloc().
Definition at line 2403 of file time.c.
References time_timeval(), and TRUE.
Referenced by io_wait(), rb_f_select(), rb_f_sleep(), and rb_mutex_sleep().
Definition at line 734 of file time.c.
References FIXWV2WINT, FIXWV_P, TIME_SCALE, wi_mul(), WINT2FIXWV, WINT2WV, and wmul().
Referenced by gmtimew(), localtimew(), obj2subsecx(), rb_time_num_new(), time_add(), time_init_1(), time_mload(), time_s_at(), timegmw(), timegmw_noleapsecond(), timelocalw(), timespec2timew(), and vtm_add_offset().
VALUE rb_time_nano_new | ( | time_t | sec, | |
long | nsec | |||
) |
Definition at line 2301 of file time.c.
References nsec2timew(), and time_new_timew().
Referenced by stat_atime(), stat_ctime(), and stat_mtime().
VALUE rb_time_new | ( | time_t | sec, | |
long | usec | |||
) |
Definition at line 2295 of file time.c.
References nsec2timew(), and time_new_timew().
Definition at line 2307 of file time.c.
References NIL_P, rb_time_magnify(), time_new_timew(), time_set_utc_offset(), utc_offset_arg(), v2w(), and validate_utc_offset().
Definition at line 3746 of file time.c.
References GetTimeval, rb_warn(), TIME_COPY_GMT, time_new_timew(), TIME_SCALE, time_object::timew, wadd(), and WINT2FIXWV.
Definition at line 2426 of file time.c.
References FALSE, GetTimeval, IsTimeval, time_timespec(), and timew2timespec().
Referenced by rb_file_s_utime().
Definition at line 2409 of file time.c.
References FALSE, GetTimeval, IsTimeval, time_timeval(), timew2timespec(), timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, and TYPEOF_TIMEVAL_TV_USEC.
Referenced by rb_thread_sleep().
Definition at line 745 of file time.c.
References FIXWV2WINT, FIXWV_P, TIME_SCALE, WINT2FIXWV, and wquo().
Referenced by guess_local_offset(), init_leap_second_info(), rb_strftime_alloc(), time_round(), and time_to_r().
Definition at line 762 of file time.c.
References DBL2NUM, FIXWV2WINT, FIXWV_P, quo(), TIME_SCALE, and w2v().
Referenced by time_minus(), and time_to_f().
Definition at line 783 of file time.c.
References TIME_SCALE, w2v(), wdivmod(), and WINT2FIXWV.
Referenced by gmtimew(), gmtimew_noleapsecond(), localtimew(), timew2timespec(), and timew2timespec_exact().
Definition at line 4311 of file time.c.
References buf, GetTimeval, MAKE_TM, rb_str_new(), rb_strftime_alloc(), TIME_UTC_P, time_object::timew, time_object::vtm, and xfree().
Referenced by time_asctime(), and time_to_s().
Definition at line 76 of file time.c.
References FIX2LONG, FIXABLE, FIXNUM_P, LONG2FIX, LONG2NUM, rb_big_minus(), rb_funcall(), T_BIGNUM, and TYPE.
Referenced by time_round(), timegmw_noleapsecond(), timelocalw(), and vtm_add_offset().
static VALUE time_add | ( | struct time_object * | tobj, | |
VALUE | offset, | |||
int | sign | |||
) | [static] |
Definition at line 3661 of file time.c.
References GetTimeval, num_exact(), rb_time_magnify(), result, TIME_FIXOFF_P, time_new_timew(), TIME_SET_FIXOFF, TIME_SET_UTC, TIME_UTC_P, time_object::timew, vtm::utc_offset, v2w(), time_object::vtm, wadd(), and wsub().
Referenced by time_minus(), time_plus(), and time_round().
Definition at line 2607 of file time.c.
References vtm::hour, INT2FIX, vtm::isdst, vtm::mday, vtm::min, vtm::mon, month_arg(), NIL_P, obj2int(), obj2subsecx(), obj2vint(), rb_scan_args(), RTEST, vtm::sec, vtm::subsecx, usec2subsecx(), vtm::utc_offset, validate_vtm(), vtm::wday, vtm::yday, vtm::year, and vtm::zone.
Referenced by time_utc_or_local().
Definition at line 3624 of file time.c.
References GetTimeval, and strftimev().
Referenced by Init_Time().
Definition at line 3294 of file time.c.
References GetTimeval, INT2FIX, IsTimeval, NIL_P, rb_cmpint(), rb_funcall(), rb_intern, time_object::timew, and wcmp().
Referenced by Init_Time().
Definition at line 4549 of file time.c.
References rb_scan_args(), and time_mdump().
Referenced by Init_Time().
Definition at line 3400 of file time.c.
References CLASS_OF, time_init_copy(), and time_s_alloc().
Referenced by time_getgmtime(), and time_getlocaltime().
Definition at line 3327 of file time.c.
References GetTimeval, IsTimeval, rb_equal(), time_object::timew, and w2v().
Referenced by Init_Time().
Definition at line 3511 of file time.c.
References GetTimeval, gmtimew(), INT2FIX, rb_eArgError, rb_raise(), TIME_FIXOFF_P, time_modify(), TIME_SET_FIXOFF, time_object::timew, time_object::tm_got, vtm::utc_offset, time_object::vtm, and vtm_add_offset().
Referenced by time_get_tm(), time_getlocaltime(), time_localtime_m(), and time_mload().
static void time_free | ( | void * | tobj | ) | [static] |
static VALUE time_get_tm | ( | VALUE | time, | |
struct time_object * | tobj | |||
) | [static] |
Definition at line 3604 of file time.c.
References time_fixoff(), TIME_FIXOFF_P, time_gmtime(), time_localtime(), and TIME_UTC_P.
Definition at line 3598 of file time.c.
References time_dup(), and time_gmtime().
Referenced by Init_Time().
Definition at line 3565 of file time.c.
References NIL_P, rb_scan_args(), time_dup(), time_fixoff(), time_localtime(), time_set_utc_offset(), utc_offset_arg(), and validate_utc_offset().
Referenced by Init_Time().
Definition at line 3487 of file time.c.
References GetTimeval, gmtimew(), rb_eArgError, rb_raise(), time_modify(), TIME_SET_UTC, TIME_UTC_P, time_object::timew, time_object::tm_got, and time_object::vtm.
Referenced by Init_Time(), time_get_tm(), time_getgmtime(), and time_utc_or_local().
Definition at line 3376 of file time.c.
References GetTimeval, rb_hash(), time_object::timew, and w2v().
Referenced by Init_Time().
Definition at line 3889 of file time.c.
References GetTimeval, vtm::hour, INT2FIX, MAKE_TM, and time_object::vtm.
Referenced by Init_Time().
Definition at line 2234 of file time.c.
References time_init_0(), and time_init_1().
Referenced by Init_Time().
Definition at line 1925 of file time.c.
References gettimeofday(), GetTimeval, rb_sys_fail(), time_modify(), timespec2timew(), time_object::timew, time_object::tm_got, timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, timeval::tv_usec, and WINT2FIXWV.
Referenced by time_init().
Definition at line 2124 of file time.c.
References divmodv(), GetTimeval, vtm::hour, ID2SYM, INT2FIX, vtm::isdst, vtm::mday, vtm::min, vtm::mon, month_arg(), neg, NIL_P, NUM2INT, num_exact(), obj2int(), obj2vint(), rb_intern, rb_scan_args(), rb_time_magnify(), vtm::sec, vtm::subsecx, time_localtime(), time_modify(), time_set_utc_offset(), timegmw(), timelocalw(), time_object::timew, time_object::tm_got, vtm::utc_offset, utc_offset_arg(), v2w(), validate_vtm(), vtm_add_offset(), w2v(), vtm::wday, WINT2FIXWV, vtm::yday, vtm::year, and vtm::zone.
Referenced by time_init().
Definition at line 3386 of file time.c.
References GetTimeval, MEMCPY, and time_modify().
Referenced by Init_Time(), and time_dup().
Definition at line 4155 of file time.c.
References GetTimeval, vtm::isdst, MAKE_TM, Qtrue, and time_object::vtm.
Referenced by Init_Time().
Definition at line 4689 of file time.c.
References time_mload(), and time_s_alloc().
Referenced by Init_Time().
Definition at line 3408 of file time.c.
References GetTimeval, localtimew(), rb_eArgError, rb_raise(), TIME_LOCALTIME_P, time_modify(), TIME_SET_LOCALTIME, time_object::timew, time_object::tm_got, and time_object::vtm.
Referenced by time_get_tm(), time_getlocaltime(), time_init_1(), time_localtime_m(), and time_utc_or_local().
Definition at line 3452 of file time.c.
References NIL_P, rb_scan_args(), time_fixoff(), time_localtime(), time_set_utc_offset(), utc_offset_arg(), and validate_utc_offset().
Referenced by Init_Time().
static void time_mark | ( | void * | ptr | ) | [static] |
Definition at line 1824 of file time.c.
References FIXWV_P, rb_gc_mark(), vtm::subsecx, time_object::timew, vtm::utc_offset, time_object::vtm, w2v(), and vtm::year.
Definition at line 3911 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::mday, and time_object::vtm.
Referenced by Init_Time().
Definition at line 4445 of file time.c.
References add(), buf, div, divmodv(), FIX2LONG, FIXNUM_P, GetTimeval, gmtimew(), vtm::hour, id_nano_den, id_nano_num, id_offset, id_submicro, INT2FIX, LONG2FIX, vtm::mday, vtm::min, vtm::mon, mulquo, rb_copy_generic_ivar(), rb_eArgError, rb_equal(), rb_Integer(), rb_ivar_set(), rb_raise(), rb_str_new(), RRATIONAL, vtm::sec, vtm::subsecx, T_RATIONAL, TIME_SCALE, time_utc_offset(), TIME_UTC_P, time_object::timew, TYPE, and vtm::year.
Referenced by Init_Time(), and time_dump().
Definition at line 3869 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::min, and time_object::vtm.
Referenced by Init_Time().
Definition at line 3720 of file time.c.
References GetTimeval, IsTimeval, rb_Float(), rb_time_unmagnify_to_float(), time_add(), time_object::timew, and wsub().
Referenced by Init_Time().
Definition at line 4564 of file time.c.
References add(), buf, GetTimeval, vtm::hour, id_nano_den, id_nano_num, id_offset, id_submicro, INT2FIX, vtm::isdst, LONG2FIX, vtm::mday, vtm::min, vtm::mon, mulquo, NIL_P, num_exact(), Qnil, quo(), rb_attr_get(), rb_copy_generic_ivar(), rb_eTypeError, rb_generic_ivar_table(), rb_raise(), rb_time_magnify(), RSTRING_LEN, RSTRING_PTR, vtm::sec, st_delete(), StringValue, StringValuePtr, vtm::subsecx, time_fixoff(), time_modify(), TIME_SCALE, TIME_SET_UTC, time_set_utc_offset(), time_t, timegmw(), TIMET2WV, time_object::timew, time_object::tm_got, vtm::utc_offset, validate_utc_offset(), wadd(), vtm::wday, WINT2FIXWV, wmulquoll, vtm::yday, vtm::year, and vtm::zone.
Referenced by Init_Time(), and time_load().
static void time_modify | ( | VALUE | time | ) | [static] |
Definition at line 1866 of file time.c.
References OBJ_UNTRUSTED, rb_check_frozen(), rb_eSecurityError, rb_raise(), and rb_safe_level.
Referenced by time_fixoff(), time_gmtime(), time_init_0(), time_init_1(), time_init_copy(), time_localtime(), time_mload(), and time_set_utc_offset().
Definition at line 3933 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::mon, and time_object::vtm.
Referenced by Init_Time().
Definition at line 2283 of file time.c.
References GetTimeval, time_s_alloc(), and time_object::timew.
Referenced by rb_time_nano_new(), rb_time_new(), rb_time_num_new(), rb_time_succ(), time_add(), time_s_at(), and time_utc_or_local().
Definition at line 3238 of file time.c.
References GetTimeval, rb_to_int(), TIME_SCALE, time_object::timew, w2v(), WINT2WV, wmod(), and wmulquoll.
Referenced by Init_Time().
static void time_overflow_p | ( | time_t * | secp, | |
long * | nsecp | |||
) | [static] |
Definition at line 2243 of file time.c.
References NDIV, NMOD, rb_eArgError, rb_eRangeError, rb_raise(), and time_t.
Referenced by nsec2timew().
Definition at line 3693 of file time.c.
References GetTimeval, IsTimeval, rb_eTypeError, rb_raise(), and time_add().
Referenced by Init_Time().
Definition at line 3799 of file time.c.
References GetTimeval, INT2FIX, lt, mod(), mul(), NIL_P, NUM2LONG(), quo(), rb_eArgError, rb_raise(), rb_scan_args(), rb_time_unmagnify(), rb_to_int(), sub(), time_add(), time_object::timew, and w2v().
Referenced by Init_Time().
Definition at line 1853 of file time.c.
References time_data_type, time_object::timew, time_object::tm_got, TypedData_Make_Struct, and WINT2FIXWV.
Referenced by Init_Time(), time_dup(), time_load(), and time_new_timew().
Definition at line 2476 of file time.c.
References GetTimeval, IsTimeval, num_exact(), rb_scan_args(), rb_time_magnify(), TIME_COPY_GMT, time_new_timew(), TIME_SCALE, time_object::timew, v2w(), wadd(), and wmulquoll.
Referenced by Init_Time().
Definition at line 3115 of file time.c.
References FALSE, and time_utc_or_local().
Referenced by Init_Time().
Definition at line 3084 of file time.c.
References time_utc_or_local(), and TRUE.
Referenced by Init_Time().
Definition at line 2449 of file time.c.
References NULL, and rb_class_new_instance().
Referenced by Init_Time().
Definition at line 3849 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::sec, and time_object::vtm.
Referenced by Init_Time().
Definition at line 1954 of file time.c.
References GetTimeval, num_exact(), time_modify(), TIME_SET_FIXOFF, and time_object::tm_got.
Referenced by rb_time_num_new(), time_getlocaltime(), time_init_1(), time_localtime_m(), and time_mload().
Definition at line 4391 of file time.c.
References buf, GetTimeval, MAKE_TM, rb_eArgError, rb_enc_copy(), rb_enc_str_asciicompat_p, rb_raise(), rb_str_cat(), rb_str_new(), rb_str_new4(), rb_strftime_alloc(), rb_warning(), RSTRING_LEN, RSTRING_PTR, StringValue, TIME_UTC_P, time_object::timew, time_object::vtm, and xfree().
Referenced by Init_Time().
Definition at line 3265 of file time.c.
References GetTimeval, INT2FIX, quo(), TIME_SCALE, time_object::timew, w2v(), WINT2FIXWV, and wmod().
Referenced by Init_Time().
Definition at line 2322 of file time.c.
References id_divmod, id_mul, INT2FIX, NIL_P, NUM2LONG(), Qundef, rb_ary_entry(), rb_check_array_type(), rb_check_funcall(), rb_eArgError, rb_eRangeError, rb_eTypeError, rb_funcall(), rb_obj_classname(), rb_raise(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, timespec::tv_nsec, timespec::tv_sec, and TYPE.
Referenced by rb_time_timespec(), and time_timeval().
Definition at line 2390 of file time.c.
References time_timespec(), timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, and TYPEOF_TIMEVAL_TV_USEC.
Referenced by rb_time_interval(), and rb_time_timeval().
Definition at line 4240 of file time.c.
References GetTimeval, vtm::hour, INT2FIX, vtm::isdst, MAKE_TM, vtm::mday, vtm::min, vtm::mon, Qfalse, Qtrue, rb_ary_new3(), vtm::sec, time_zone(), time_object::vtm, vtm::wday, vtm::yday, and vtm::year.
Referenced by Init_Time().
Definition at line 3158 of file time.c.
References GetTimeval, rb_Float(), rb_time_unmagnify_to_float(), and time_object::timew.
Referenced by Init_Time().
Definition at line 3134 of file time.c.
References GetTimeval, TIME_SCALE, time_object::timew, w2v(), wdiv(), and WINT2FIXWV.
Referenced by Init_Time().
Definition at line 3182 of file time.c.
References GetTimeval, rb_Rational1, rb_time_unmagnify(), T_RATIONAL, time_object::timew, TYPE, and w2v().
Referenced by Init_Time().
Definition at line 3649 of file time.c.
References GetTimeval, strftimev(), and TIME_UTC_P.
Referenced by Init_Time().
Definition at line 3208 of file time.c.
References GetTimeval, rb_to_int(), TIME_SCALE, time_object::timew, w2v(), WINT2FIXWV, WINT2WV, wmod(), and wmuldivmod().
Referenced by Init_Time().
Definition at line 4209 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, TIME_UTC_P, vtm::utc_offset, and time_object::vtm.
Referenced by Init_Time(), and time_mdump().
Definition at line 3037 of file time.c.
References time_arg(), time_gmtime(), time_localtime(), time_new_timew(), timegmw(), and timelocalw().
Referenced by time_s_mktime(), and time_s_mkutc().
Definition at line 3359 of file time.c.
References GetTimeval, and TIME_UTC_P.
Referenced by Init_Time().
Definition at line 3981 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::wday.
Referenced by Init_Time().
Definition at line 4120 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::yday.
Referenced by Init_Time().
Definition at line 3953 of file time.c.
References GetTimeval, MAKE_TM, time_object::vtm, and vtm::year.
Referenced by Init_Time().
Definition at line 4178 of file time.c.
References GetTimeval, MAKE_TM, NULL, rb_locale_str_new_cstr(), rb_obj_untaint(), TIME_UTC_P, time_object::vtm, and vtm::zone.
Referenced by Init_Time(), and time_to_a().
static time_t timegm_noleapsecond | ( | struct tm * | tm | ) | [static] |
Definition at line 2681 of file time.c.
References DIV, and leap_year_p().
Referenced by find_time_t().
Definition at line 1318 of file time.c.
References find_time_t(), gt, vtm::hour, init_leap_second_info(), INT2FIX, vtm::mday, vtm::min, vtm::mon, NUM2LONG(), rb_eArgError, rb_long2int, rb_raise(), rb_time_magnify(), vtm::sec, vtm::subsecx, time_t, timegmw_noleapsecond(), TIMET2WV, v2w(), wadd(), WINT2WV, wlt, and vtm::year.
Referenced by guess_local_offset(), time_init_1(), time_mload(), time_utc_or_local(), and timelocalw().
Definition at line 980 of file time.c.
References add(), calc_tm_yday(), DIV, divmodv(), vtm::hour, INT2FIX, LONG2NUM, vtm::mday, vtm::min, vtm::mon, mul(), NUM2INT, rb_time_magnify(), vtm::sec, sub(), vtm::subsecx, v2w(), wadd(), WINT2FIXWV, wmul(), and vtm::year.
Referenced by init_leap_second_info(), and timegmw().
Definition at line 1588 of file time.c.
References find_time_t(), FIX2LONG, FIXNUM_P, vtm::hour, INT2FIX, INT2NUM(), vtm::isdst, localtimew(), lt, vtm::mday, vtm::min, vtm::mon, NUM2INT, rb_eArgError, rb_raise(), rb_time_magnify(), vtm::sec, small_vtm_sub(), sub(), vtm::subsecx, time_t, timegmw(), TIMET2WV, vtm::utc_offset, v2w(), vtmcmp(), wadd(), weq(), WINT2FIXWV, wsub(), and vtm::year.
Referenced by time_init_1(), and time_utc_or_local().
Definition at line 1874 of file time.c.
References rb_time_magnify(), TIME_SCALE, TIMET2WV, time_object::timew, timespec::tv_nsec, timespec::tv_sec, wadd(), WINT2WV, and wmulquoll.
Referenced by nsec2timew(), and time_init_0().
static wideval_t timet2wv | ( | time_t | t | ) | [static] |
Definition at line 1885 of file time.c.
References INT2FIX, mulquo, NUM2LONG(), rb_eArgError, rb_raise(), split_second(), TIME_SCALE, timew_out_of_timet_range(), timespec::tv_nsec, timespec::tv_sec, and WV2TIMET.
Referenced by rb_time_timespec(), and rb_time_timeval().
static struct timespec* timew2timespec_exact | ( | wideval_t | timew, | |
struct timespec * | ts | |||
) | [static, read] |
Definition at line 1900 of file time.c.
References FIXNUM_P, INT2FIX, mulquo, NUM2LONG(), split_second(), TIME_SCALE, timew_out_of_timet_range(), timespec::tv_nsec, timespec::tv_sec, and WV2TIMET.
Referenced by rb_strftime_alloc().
static int timew_out_of_timet_range | ( | wideval_t | timew | ) | [static] |
Definition at line 1721 of file time.c.
References add(), FIXWV2WINT, FIXWV_P, INT2FIX, le, lt, mul(), TIME_SCALE, TIMET_MAX, TIMET_MIN, and w2v().
Referenced by localtimew(), timew2timespec(), and timew2timespec_exact().
static int tmcmp | ( | struct tm * | a, | |
struct tm * | b | |||
) | [static] |
Definition at line 3018 of file time.c.
Referenced by find_time_t().
static long usec2subsecx | ( | VALUE | obj | ) | [static] |
Definition at line 2547 of file time.c.
References FALSE, INT2FIX, mulquo, num_exact(), rb_str_to_inum(), T_STRING, TIME_SCALE, and TYPE.
Referenced by time_arg().
Definition at line 2097 of file time.c.
References INT2FIX, ISDIGIT, NIL_P, num_exact(), rb_check_string_type(), rb_eArgError, rb_enc_str_asciicompat_p, rb_raise(), RSTRING_LEN, and RSTRING_PTR.
Referenced by rb_time_num_new(), time_getlocaltime(), time_init_1(), and time_localtime_m().
Definition at line 383 of file time.c.
References BDIGIT, FIXNUM_P, RBIGNUM_LEN, T_BIGNUM, TYPE, and WIDEVAL_WRAP.
Referenced by localtimew(), obj2subsecx(), rb_time_num_new(), time_add(), time_init_1(), time_s_at(), timegmw(), timegmw_noleapsecond(), timelocalw(), timet2wv(), vtm_add_offset(), wadd(), wdivmod(), wmul(), wquo(), and wsub().
static void validate_utc_offset | ( | VALUE | utc_offset | ) | [static] |
Definition at line 2586 of file time.c.
References ge, INT2FIX, le, rb_eArgError, and rb_raise().
Referenced by rb_time_num_new(), time_getlocaltime(), time_localtime_m(), time_mload(), and validate_vtm().
static void validate_vtm | ( | struct vtm * | vtm | ) | [static] |
Definition at line 2593 of file time.c.
References ge, vtm::hour, INT2FIX, lt, vtm::mday, vtm::min, vtm::mon, NIL_P, rb_eArgError, rb_raise(), vtm::sec, vtm::subsecx, TIME_SCALE, vtm::utc_offset, and validate_utc_offset().
Referenced by time_arg(), and time_init_1().
Definition at line 1969 of file time.c.
References add(), divmodv(), vtm::hour, INT2FIX, le, leap_year_v_p, lt, vtm::mday, vtm::min, vtm::mon, neg, NUM2INT, rb_equal(), rb_time_magnify(), vtm::sec, sub(), vtm::subsecx, TIME_SCALE, vtm::utc_offset, v2w(), w2v(), vtm::wday, vtm::yday, and vtm::year.
Referenced by time_fixoff(), and time_init_1().
Definition at line 278 of file time.c.
References FIXWV2WINT, FIXWV_P, and WIDEVAL_GET.
Referenced by gmtimew_noleapsecond(), guess_local_offset(), init_leap_second_info(), obj2subsecx(), rb_strftime_alloc(), rb_time_unmagnify_to_float(), split_second(), time_eql(), time_hash(), time_init_1(), time_mark(), time_nsec(), time_round(), time_subsec(), time_to_i(), time_to_r(), time_usec(), timew_out_of_timet_range(), vtm_add_offset(), wadd(), wcmp(), wdivmod(), weq(), wmul(), wquo(), wsub(), and wv2timet().
Definition at line 438 of file time.c.
References FIXWV2WINT, FIXWV_P, rb_big_plus(), rb_funcall(), T_BIGNUM, TYPE, v2w(), w2v(), and WINT2WV.
Referenced by localtimew(), rb_time_succ(), time_add(), time_mload(), time_s_at(), timegmw(), timegmw_noleapsecond(), timelocalw(), and timespec2timew().
Definition at line 411 of file time.c.
References FIXWV2WINT, FIXWV_P, id_cmp, rb_cmpint(), rb_funcall(), and w2v().
Referenced by time_cmp().
Definition at line 561 of file time.c.
References FIXWV2WINT, FIXWV_P, id_divmod, NIL_P, rb_ary_entry(), rb_check_array_type(), rb_eTypeError, rb_funcall(), rb_num_zerodiv(), rb_obj_classname(), rb_raise(), v2w(), w2v(), WINT2FIXWV, and WINT2WV.
Referenced by gmtimew_noleapsecond(), split_second(), wdiv(), wmod(), and wmuldivmod().
Definition at line 398 of file time.c.
References eq(), FIXWV_P, id_eq, rb_funcall(), RTEST, w2v(), and WIDEVAL_GET.
Referenced by timelocalw().
Definition at line 470 of file time.c.
References UWIDEINT_MAX, and WIDEINT_MAX.
Referenced by rb_time_magnify(), and wmul().
Definition at line 649 of file time.c.
References wdivmod().
Referenced by time_nsec(), time_subsec(), and time_usec().
Definition at line 512 of file time.c.
References FIXWV2WINT, FIXWV_P, INT2FIX, rb_big_mul(), rb_funcall(), RRATIONAL, T_BIGNUM, T_RATIONAL, TYPE, v2w(), w2v(), wi_mul(), and WINT2WV.
Referenced by rb_time_magnify(), timegmw_noleapsecond(), and wmuldivmod().
static void wmuldivmod | ( | wideval_t | wx, | |
wideval_t | wy, | |||
wideval_t | wz, | |||
wideval_t * | wq, | |||
wideval_t * | wr | |||
) | [static] |
Definition at line 630 of file time.c.
References wdivmod(), WIDEVAL_GET, WINT2FIXWV, and wmul().
Referenced by time_usec().
Definition at line 532 of file time.c.
References FIXWV2WINT, FIXWV_P, id_quo, INT2FIX, rb_funcall(), rb_num_zerodiv(), RRATIONAL, T_RATIONAL, TYPE, v2w(), w2v(), and WINT2WV.
Referenced by rb_time_unmagnify().
Definition at line 454 of file time.c.
References FIXWV2WINT, FIXWV_P, rb_big_minus(), rb_funcall(), T_BIGNUM, TYPE, v2w(), w2v(), and WINT2WV.
Referenced by gmtimew(), init_leap_second_info(), time_add(), time_minus(), and timelocalw().
static time_t wv2timet | ( | wideval_t | w | ) | [static] |
Definition at line 813 of file time.c.
References FIXWV2WINT, FIXWV_P, rb_eRangeError, rb_raise(), time_t, TIMET_MAX, TIMET_MIN, and w2v().
static const char* zone_str | ( | const char * | s | ) | [static] |
Definition at line 1023 of file time.c.
References st_add_direct(), st_init_strtable(), st_lookup(), and strdup.
Referenced by localtime_with_gmtoff_zone().
const int common_year_days_in_month[] [static] |
const int common_year_yday_offset[] [static] |
{ -1, -1 + 31, -1 + 31 + 28, -1 + 31 + 28 + 31, -1 + 31 + 28 + 31 + 30, -1 + 31 + 28 + 31 + 30 + 31, -1 + 31 + 28 + 31 + 30 + 31 + 30, -1 + 31 + 28 + 31 + 30 + 31 + 30 + 31, -1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, -1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, -1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, -1 + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 }
int compat_common_month_table[12][7] [static] |
{ { 2034, 2035, 2036, 2031, 2032, 2027, 2033 }, { 2026, 2027, 2033, 2034, 2035, 2030, 2031 }, { 2026, 2032, 2033, 2034, 2035, 2030, 2036 }, { 2035, 2030, 2036, 2026, 2032, 2033, 2034 }, { 2033, 2034, 2035, 2030, 2036, 2026, 2032 }, { 2036, 2026, 2032, 2033, 2034, 2035, 2030 }, { 2035, 2030, 2036, 2026, 2032, 2033, 2034 }, { 2032, 2033, 2034, 2035, 2030, 2036, 2026 }, { 2030, 2036, 2026, 2032, 2033, 2034, 2035 }, { 2034, 2035, 2030, 2036, 2026, 2032, 2033 }, { 2026, 2032, 2033, 2034, 2035, 2030, 2036 }, { 2030, 2036, 2026, 2032, 2033, 2034, 2035 }, }
int compat_leap_month_table[7] [static] |
Definition at line 28 of file time.c.
Referenced by cmp(), Init_Time(), and wcmp().
Definition at line 28 of file time.c.
Referenced by Init_Time().
Definition at line 27 of file time.c.
Referenced by divmodv(), Init_Time(), time_timespec(), and wdivmod().
Definition at line 28 of file time.c.
Referenced by Init_Time().
Definition at line 27 of file time.c.
Referenced by Init_Time(), and time_timespec().
ID id_nano_den [static] |
Definition at line 27 of file time.c.
Referenced by Init_Time(), time_mdump(), and time_mload().
ID id_nano_num [static] |
Definition at line 27 of file time.c.
Referenced by Init_Time(), time_mdump(), and time_mload().
Definition at line 28 of file time.c.
Referenced by Init_Time().
Definition at line 27 of file time.c.
Referenced by Init_Time(), time_mdump(), and time_mload().
Definition at line 28 of file time.c.
Referenced by Init_Time(), quo(), and wquo().
ID id_submicro [static] |
Definition at line 27 of file time.c.
Referenced by Init_Time(), time_mdump(), and time_mload().
time_t known_leap_seconds_limit [static] |
const int leap_year_days_in_month[] [static] |
const int leap_year_yday_offset[] [static] |
{ -1, -1 + 31, -1 + 31 + 29, -1 + 31 + 29 + 31, -1 + 31 + 29 + 31 + 30, -1 + 31 + 29 + 31 + 30 + 31, -1 + 31 + 29 + 31 + 30 + 31 + 30, -1 + 31 + 29 + 31 + 30 + 31 + 30 + 31, -1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31, -1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30, -1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, -1 + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 }
const char months[][4] [static] |
int number_of_leap_seconds_known [static] |
const rb_data_type_t time_data_type [static] |
{
"time",
time_mark, time_free, time_memsize,
}
Definition at line 1847 of file time.c.
Referenced by time_s_alloc().
st_table* zone_table [static] |