#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 (const time_t *t, struct tm *result, long *gmtoff) |
| static int | calc_wday (int year, int month, int day) |
| static VALUE | guess_local_offset (struct vtm *vtm_utc) |
| 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 DEBUG_REPORT_GUESSRANGE |
| #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 |
| #define FIXWV_MIN FIXNUM_MIN |
| #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) |
| #define GetTimeval | ( | obj, | |||
| tobj | ) | TypedData_Get_Struct((obj), struct time_object, &time_data_type, (tobj)) |
Definition at line 1764 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().
| #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 1767 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 pack_pack(), 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 905 of file time.c.
Referenced by find_time_t(), gmtime_with_leapsecond(), and localtime_with_gmtoff().
| #define lshift | ( | x, | |||
| y | ) | (rb_funcall((x), id_lshift, 1, (y))) |
| #define lt | ( | x, | |||
| y | ) | (cmp((x),(y)) < 0) |
Definition at line 58 of file time.c.
Referenced by filetime_to_timeval(), guess_local_offset(), small_vtm_sub(), time_round(), timelocalw(), timew_out_of_timet_range(), unixtime_to_filetime(), validate_vtm(), vtm_add_offset(), and vtmcmp().
| #define MAKE_TM | ( | time, | |||
| tobj | ) |
Value:
do { \ if ((tobj)->tm_got == 0) { \ time_get_tm((time), (tobj)); \ } \ } while (0)
Definition at line 1784 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)) |
| #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) |
| #define ne | ( | x, | |||
| y | ) | (!eq((x),(y))) |
Definition at line 57 of file time.c.
Referenced by add_ensure_range(), small_vtm_sub(), VpAlloc(), VpDtoV(), 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(), nurat_round(), parse_char_class(), parse_enclose(), rb_fix2str(), rb_int2big(), time_init_1(), and vtm_add_offset().
| #define NMOD | ( | x, | |||
| y | ) | ((y)-(-((x)+1)%(y))-1) |
| #define rb_intern | ( | str | ) | rb_intern_const(str) |
| #define TIME_COPY_GMT | ( | tobj1, | |||
| tobj2 | ) | ((tobj1)->gmt = (tobj2)->gmt) |
| #define TIME_FIXOFF_P | ( | tobj | ) | ((tobj)->gmt == 2) |
| #define TIME_LOCALTIME_P | ( | tobj | ) | ((tobj)->gmt == 0) |
| #define TIME_SET_FIXOFF | ( | tobj, | |||
| off | ) |
Value:
((tobj)->gmt = 2, \
(tobj)->vtm.utc_offset = (off), \
(tobj)->vtm.zone = NULL)
Definition at line 1776 of file time.c.
Referenced by time_add(), time_fixoff(), and time_set_utc_offset().
| #define TIME_SET_LOCALTIME | ( | tobj | ) | ((tobj)->gmt = 0) |
| #define TIME_SET_UTC | ( | tobj | ) | ((tobj)->gmt = 1) |
| #define time_succ rb_time_succ |
| #define TIME_UTC_P | ( | tobj | ) | ((tobj)->gmt == 1) |
Definition at line 1769 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 find_time_t(), 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 find_time_t(), timet2wv(), timew_out_of_timet_range(), and wv2timet().
| #define TYPEOF_TIMEVAL_TV_SEC time_t |
| #define TYPEOF_TIMEVAL_TV_USEC long |
| #define wday_p | ( | n | ) |
Value:
{\
struct time_object *tobj;\
GetTimeval(time, tobj);\
MAKE_TM(time, tobj);\
return (tobj->vtm.wday == (n)) ? Qtrue : Qfalse;\
}
Definition at line 3958 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) |
| #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 |
| 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 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().
Definition at line 36 of file time.c.
References FIXNUM_P, id_eq, rb_funcall(), and RTEST.
Referenced by init_env(), and weq().
| static const char * find_time_t | ( | struct tm * | tptr, | |
| int | utc_p, | |||
| time_t * | tp | |||
| ) | [static] |
Definition at line 2696 of file time.c.
References calc_tm_yday(), DEBUG_REPORT_GUESSRANGE, GUESS, leap_year_p(), LOCALTIME, NULL, time_t, timegm_noleapsecond(), TIMET_MAX, TIMET_MIN, 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, NULL, 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().
Definition at line 1491 of file time.c.
References calc_wday(), INT2FIX, leap_year_p(), localtime_with_gmtoff(), 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 4683 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 2643 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 | ( | const time_t * | t, | |
| struct tm * | result, | |||
| long * | gmtoff | |||
| ) | [static, read] |
Definition at line 1646 of file time.c.
References GMTIME, LOCALTIME, and NULL.
Referenced by guess_local_offset(), and localtimew().
Definition at line 1701 of file time.c.
References buf, gmtimew(), guess_local_offset(), vtm::hour, vtm::isdst, localtime_with_gmtoff(), LONG2NUM, vtm::mday, vtm::min, vtm::mon, NULL, 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, vtm::zone, and zone_str().
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.
| static int month_arg | ( | VALUE | arg | ) | [static] |
Definition at line 2525 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.
| static wideval_t nsec2timew | ( | time_t | sec, | |
| long | nsec | |||
| ) | [static] |
Definition at line 2241 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 2476 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 2499 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 2486 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.
| static struct tm* rb_gmtime_r | ( | const time_t * | tp, | |
| struct tm * | result | |||
| ) | [static, read] |
| static struct tm* rb_gmtime_r2 | ( | const time_t * | t, | |
| struct tm * | result | |||
| ) | [static, read] |
| static struct tm* rb_localtime_r | ( | const time_t * | tp, | |
| struct tm * | result | |||
| ) | [static, read] |
| static struct tm* rb_localtime_r2 | ( | const time_t * | t, | |
| struct tm * | result | |||
| ) | [static, read] |
| size_t rb_strftime | ( | char * | s, | |
| size_t | maxsize, | |||
| const char * | format, | |||
| const struct vtm * | vtm, | |||
| VALUE | timev, | |||
| int | gmt | |||
| ) |
Definition at line 893 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 4237 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 899 of file strftime.c.
References Qnil, and rb_strftime_with_timespec().
Referenced by rb_strftime_alloc().
Definition at line 2371 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 2269 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 2263 of file time.c.
References nsec2timew(), and time_new_timew().
Referenced by rb_gzfile_mtime().
Definition at line 2275 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 3714 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 2394 of file time.c.
References FALSE, GetTimeval, IsTimeval, time_timespec(), and timew2timespec().
Referenced by rb_file_s_utime().
Definition at line 2377 of file time.c.
References FALSE, GetTimeval, IsTimeval, time_timeval(), timew2timespec(), timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, TYPEOF_TIMEVAL_TV_SEC, 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 4279 of file time.c.
References buf, GetTimeval, MAKE_TM, rb_str_new(), rb_strftime_alloc(), SMALLBUF, TIME_UTC_P, time_object::timew, time_object::vtm, and xfree.
Referenced by time_asctime(), and time_to_s().
| static VALUE time_add | ( | struct time_object * | tobj, | |
| VALUE | offset, | |||
| int | sign | |||
| ) | [static] |
Definition at line 3629 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 2575 of file time.c.
References vtm::hour, INT2FIX, vtm::isdst, vtm::mday, vtm::min, vtm::mon, month_arg(), NIL_P, obj2int(), obj2subsecx(), obj2vint(), Qnil, 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 3592 of file time.c.
References GetTimeval, and strftimev().
Referenced by Init_Time().
Definition at line 3262 of file time.c.
References GetTimeval, INT2FIX, IsTimeval, NIL_P, Qnil, rb_cmpint(), rb_funcall(), rb_intern, time_object::timew, and wcmp().
Referenced by Init_Time().
Definition at line 4517 of file time.c.
References rb_scan_args(), and time_mdump().
Referenced by Init_Time().
Definition at line 3368 of file time.c.
References CLASS_OF, time_init_copy(), and time_s_alloc().
Referenced by time_getgmtime(), and time_getlocaltime().
Definition at line 3295 of file time.c.
References GetTimeval, IsTimeval, Qfalse, rb_equal(), time_object::timew, and w2v().
Referenced by Init_Time().
Definition at line 3479 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 3572 of file time.c.
References time_fixoff(), TIME_FIXOFF_P, time_gmtime(), time_localtime(), and TIME_UTC_P.
Definition at line 3566 of file time.c.
References time_dup(), and time_gmtime().
Referenced by Init_Time().
Definition at line 3533 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 3455 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 3344 of file time.c.
References GetTimeval, rb_hash(), time_object::timew, and w2v().
Referenced by Init_Time().
Definition at line 3857 of file time.c.
References GetTimeval, vtm::hour, INT2FIX, MAKE_TM, and time_object::vtm.
Referenced by Init_Time().
Definition at line 2202 of file time.c.
References time_init_0(), and time_init_1().
Referenced by Init_Time().
Definition at line 1893 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 2092 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(), Qnil, 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 3354 of file time.c.
References GetTimeval, MEMCPY, and time_modify().
Referenced by Init_Time(), and time_dup().
Definition at line 4123 of file time.c.
References GetTimeval, vtm::isdst, MAKE_TM, Qfalse, Qtrue, and time_object::vtm.
Referenced by Init_Time().
Definition at line 4657 of file time.c.
References time_mload(), and time_s_alloc().
Referenced by Init_Time().
Definition at line 3376 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 3420 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 1792 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 3879 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::mday, and time_object::vtm.
Referenced by Init_Time().
Definition at line 4413 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, mod, 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 3837 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::min, and time_object::vtm.
Referenced by Init_Time().
Definition at line 3688 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 4532 of file time.c.
References add, buf, digit, 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 1834 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 3901 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::mon, and time_object::vtm.
Referenced by Init_Time().
Definition at line 2251 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 3206 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 2211 of file time.c.
References NDIV, NMOD, rb_eArgError, rb_eRangeError, rb_raise(), and time_t.
Referenced by nsec2timew().
Definition at line 3661 of file time.c.
References GetTimeval, IsTimeval, rb_eTypeError, rb_raise(), and time_add().
Referenced by Init_Time().
Definition at line 3767 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 1821 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 2444 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 3083 of file time.c.
References FALSE, and time_utc_or_local().
Referenced by Init_Time().
Definition at line 3052 of file time.c.
References time_utc_or_local(), and TRUE.
Referenced by Init_Time().
Definition at line 2417 of file time.c.
References NULL, and rb_class_new_instance().
Referenced by Init_Time().
Definition at line 3817 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, vtm::sec, and time_object::vtm.
Referenced by Init_Time().
Definition at line 1922 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 4359 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, SMALLBUF, StringValue, TIME_UTC_P, time_object::timew, time_object::vtm, and xfree.
Referenced by Init_Time().
Definition at line 3233 of file time.c.
References GetTimeval, INT2FIX, quo, TIME_SCALE, time_object::timew, w2v(), WINT2FIXWV, and wmod().
Referenced by Init_Time().
Definition at line 2290 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, time_t, timespec::tv_nsec, timespec::tv_sec, and TYPE.
Referenced by rb_time_timespec(), and time_timeval().
Definition at line 2358 of file time.c.
References time_timespec(), timespec::tv_nsec, timespec::tv_sec, timeval::tv_sec, timeval::tv_usec, TYPEOF_TIMEVAL_TV_SEC, and TYPEOF_TIMEVAL_TV_USEC.
Referenced by rb_time_interval(), and rb_time_timeval().
Definition at line 4208 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 3126 of file time.c.
References GetTimeval, rb_Float(), rb_time_unmagnify_to_float(), and time_object::timew.
Referenced by Init_Time().
Definition at line 3102 of file time.c.
References GetTimeval, TIME_SCALE, time_object::timew, w2v(), wdiv(), and WINT2FIXWV.
Referenced by Init_Time().
Definition at line 3150 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 3617 of file time.c.
References GetTimeval, strftimev(), and TIME_UTC_P.
Referenced by Init_Time().
Definition at line 3176 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 4177 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 3005 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 3327 of file time.c.
References GetTimeval, Qfalse, Qtrue, and TIME_UTC_P.
Referenced by Init_Time().
Definition at line 3949 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::wday.
Referenced by Init_Time().
Definition at line 4088 of file time.c.
References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::yday.
Referenced by Init_Time().
Definition at line 3921 of file time.c.
References GetTimeval, MAKE_TM, time_object::vtm, and vtm::year.
Referenced by Init_Time().
Definition at line 4146 of file time.c.
References GetTimeval, MAKE_TM, NULL, Qnil, rb_str_new2, 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 2649 of file time.c.
References DIV, leap_year_p(), and time_t.
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 1564 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 1842 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 1853 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 1868 of file time.c.
References FIXNUM_P, INT2FIX, mulquo, NULL, 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 1681 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] |
| static long usec2subsecx | ( | VALUE | obj | ) | [static] |
Definition at line 2515 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 2065 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 2554 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 2561 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 1937 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 localtimew().
const int common_year_days_in_month[] [static] |
const int common_year_yday_offset[] [static] |
Initial value:
{
-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] |
Initial value:
{
{ 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 27 of file time.c.
Referenced by divmodv(), Init_Time(), time_timespec(), and wdivmod().
ID id_nano_den [static] |
ID id_nano_num [static] |
ID id_submicro [static] |
time_t known_leap_seconds_limit [static] |
const int leap_year_days_in_month[] [static] |
const int leap_year_yday_offset[] [static] |
Initial value:
{
-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] |
Initial value:
{
"time",
time_mark, time_free, time_memsize,
}
Definition at line 1815 of file time.c.
Referenced by time_s_alloc().
st_table* zone_table [static] |