Data Structures | Defines | Typedefs | Functions | Variables

time.c File Reference

#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"
Include dependency graph for time.c:

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 vtmlocaltimew (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 vtmgmtimew (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 timespectimew2timespec_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_tablezone_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 Documentation

#define DEBUG_FIND_TIME_NUMGUESS_INC

Definition at line 2724 of file time.c.

#define DEBUG_REPORT_GUESSRANGE

Definition at line 2712 of file time.c.

#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 FIXWINT_P (   v  )     FIXNUM_P(v)

Definition at line 237 of file time.c.

#define FIXWV2WINT (   w  )     FIX2LONG(WIDEVAL_GET(w))
#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))
#define FIXWVABLE (   i  )     FIXABLE(i)

Definition at line 240 of file time.c.

#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))
#define GMTIME (   tm,
  result 
)    rb_gmtime_r2((tm), &(result))

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)

Definition at line 59 of file time.c.

Referenced by timegmw().

#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)
#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().

#define LOCALTIME (   tm,
  result 
)    (tzset(),rb_localtime_r2((tm), &(result)))

Definition at line 905 of file time.c.

Referenced by find_time_t(), gmtime_with_leapsecond(), and localtime_with_gmtoff_zone().

#define lshift (   x,
  y 
)    (rb_funcall((x), id_lshift, 1, (y)))

Definition at line 163 of file time.c.

#define lt (   x,
  y 
)    (cmp((x),(y)) < 0)
#define MAKE_TM (   time,
  tobj 
)
Value:
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)))
#define NEGFIXWVABLE (   wi  )     ((wi) >= FIXWV_MIN)

Definition at line 246 of file time.c.

#define NMOD (   x,
  y 
)    ((y)-(-((x)+1)%(y))-1)

Definition at line 31 of file time.c.

Referenced by time_overflow_p().

#define POSFIXWVABLE (   wi  )     ((wi) < FIXWV_MAX+1)

Definition at line 245 of file time.c.

#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 
)
Value:
((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)
#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_SEC   time_t

Definition at line 710 of file time.c.

#define TYPEOF_TIMEVAL_TV_USEC   long

Definition at line 716 of file time.c.

Referenced by rb_time_timeval(), and time_timeval().

#define UWIDEINT_MAX   ULONG_MAX

Definition at line 234 of file time.c.

Referenced by wi_mul().

#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 3990 of file time.c.

Referenced by time_friday(), time_monday(), time_saturday(), time_sunday(), time_thursday(), time_tuesday(), and time_wednesday().

#define wge (   x,
  y 
)    (wcmp((x),(y)) >= 0)

Definition at line 435 of file time.c.

#define wgt (   x,
  y 
)    (wcmp((x),(y)) > 0)

Definition at line 433 of file time.c.

#define WIDEINT_MAX   LONG_MAX

Definition at line 235 of file time.c.

Referenced by wi_mul().

#define WIDEINT_MIN   LONG_MIN

Definition at line 236 of file time.c.

#define WIDEVAL_GET (   w  )     (w)

Definition at line 260 of file time.c.

Referenced by w2v(), weq(), and wmuldivmod().

#define WIDEVAL_WRAP (   v  )     (v)

Definition at line 259 of file time.c.

Referenced by v2w().

#define WIDEVALUE_IS_WIDER   0

Definition at line 233 of file time.c.

#define WINT2FIXWV (   i  )     WIDEVAL_WRAP(LONG2FIX(i))
#define WINT2WV (   wi  )     WIDEVAL_WRAP(LONG2NUM(wi))
#define wle (   x,
  y 
)    (wcmp((x),(y)) <= 0)

Definition at line 434 of file time.c.

#define wlt (   x,
  y 
)    (wcmp((x),(y)) < 0)

Definition at line 432 of file time.c.

Referenced by gmtimew(), and timegmw().

#define wmulquo (   x,
  y,
  z 
)    ((WIDEVAL_GET(y) == WIDEVAL_GET(z)) ? (x) : wquo(wmul((x),(y)),(z)))

Definition at line 557 of file time.c.

#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 wne (   x,
  y 
)    (!weq((x),(y)))

Definition at line 431 of file time.c.

#define WV2TIMET (   t  )     wv2timet(t)

Definition at line 833 of file time.c.

Referenced by gmtimew(), localtimew(), timew2timespec(), and timew2timespec_exact().


Typedef Documentation

typedef SIGNED_VALUE SIGNED_WIDEVALUE

Definition at line 232 of file time.c.

typedef unsigned long unsigned_time_t

Definition at line 721 of file time.c.

typedef unsigned long uwideint_t

Definition at line 229 of file time.c.

typedef long wideint_t

Definition at line 230 of file time.c.

Definition at line 258 of file time.c.

typedef VALUE WIDEVALUE

Definition at line 231 of file time.c.


Function Documentation

static VALUE time_utc_offset _ ( (VALUE  )  [static]
static VALUE add ( VALUE  x,
VALUE  y 
) [static]
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().

static int cmp ( VALUE  x,
VALUE  y 
) [static]

Definition at line 45 of file time.c.

References FIXNUM_P, id_cmp, rb_cmpint(), and rb_funcall().

static void divmodv ( VALUE  n,
VALUE  d,
VALUE q,
VALUE r 
) [static]
static int eq ( VALUE  x,
VALUE  y 
) [static]

Definition at line 36 of file time.c.

References FIXNUM_P, id_eq, rb_funcall(), and RTEST.

Referenced by weq().

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().

static struct vtm* gmtimew ( wideval_t  timew,
struct vtm result 
) [static, read]
static void gmtimew_noleapsecond ( wideval_t  timew,
struct vtm vtm 
) [static]
static VALUE guess_local_offset ( struct vtm vtm_utc,
int *  isdst_ret,
const char **  zone_ret 
) [static]
static void init_leap_second_info (  )  [static]
void Init_Time ( void   ) 
static int leap_year_p ( long  y  )  [static]
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().

static struct vtm * localtimew ( wideval_t  timew,
struct vtm result 
) [static, read]
static int long_mul ( long  x,
long  y,
long *  z 
) [static]

Definition at line 89 of file time.c.

References LONG_MAX.

Referenced by mul().

static VALUE mod ( VALUE  x,
VALUE  y 
) [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().

static VALUE mul ( VALUE  x,
VALUE  y 
) [static]
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().

static VALUE num_exact ( VALUE  v  )  [static]
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().

static int obj2subsecx ( VALUE  obj,
VALUE subsecx 
) [static]

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().

static VALUE obj2vint ( VALUE  obj  )  [static]

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().

static VALUE quo ( VALUE  x,
VALUE  y 
) [static]
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]
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().

struct timeval rb_time_interval ( VALUE  num  )  [read]

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().

static wideval_t rb_time_magnify ( wideval_t  w  )  [static]
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().

VALUE rb_time_num_new ( VALUE  timev,
VALUE  off 
)
VALUE rb_time_succ ( VALUE  time  ) 
struct timespec rb_time_timespec ( VALUE  time  )  [read]

Definition at line 2426 of file time.c.

References FALSE, GetTimeval, IsTimeval, time_timespec(), and timew2timespec().

Referenced by rb_file_s_utime().

struct timeval rb_time_timeval ( VALUE  time  )  [read]
static wideval_t rb_time_unmagnify ( wideval_t  w  )  [static]
static VALUE rb_time_unmagnify_to_float ( wideval_t  w  )  [static]

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().

static VALUE small_vtm_sub ( struct vtm vtm1,
struct vtm vtm2 
) [static]

Definition at line 1570 of file time.c.

References vtm::hour, INT2FIX, lt, vtm::mday, vtm::min, vtm::mon, ne, vtm::sec, and vtm::year.

Referenced by timelocalw().

static void split_second ( wideval_t  timew,
wideval_t timew_p,
VALUE subsecx_p 
) [static]
static VALUE strftimev ( const char *  fmt,
VALUE  time 
) [static]
static VALUE sub ( VALUE  x,
VALUE  y 
) [static]
static VALUE time_add ( struct time_object tobj,
VALUE  offset,
int  sign 
) [static]
static void time_arg ( int  argc,
VALUE argv,
struct vtm vtm 
) [static]
static VALUE time_asctime ( VALUE  time  )  [static]

Definition at line 3624 of file time.c.

References GetTimeval, and strftimev().

Referenced by Init_Time().

static VALUE time_cmp ( VALUE  time1,
VALUE  time2 
) [static]

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().

static VALUE time_dump ( int  argc,
VALUE argv,
VALUE  time 
) [static]

Definition at line 4549 of file time.c.

References rb_scan_args(), and time_mdump().

Referenced by Init_Time().

static VALUE time_dup ( VALUE  time  )  [static]

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().

static VALUE time_eql ( VALUE  time1,
VALUE  time2 
) [static]

Definition at line 3327 of file time.c.

References GetTimeval, IsTimeval, rb_equal(), time_object::timew, and w2v().

Referenced by Init_Time().

static VALUE time_fixoff ( VALUE  time  )  [static]
static void time_free ( void *  tobj  )  [static]

Definition at line 1836 of file time.c.

References xfree().

static VALUE time_friday ( VALUE  time  )  [static]

Definition at line 4088 of file time.c.

References wday_p.

Referenced by Init_Time().

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.

static VALUE time_getgmtime ( VALUE  time  )  [static]

Definition at line 3598 of file time.c.

References time_dup(), and time_gmtime().

Referenced by Init_Time().

static VALUE time_getlocaltime ( int  argc,
VALUE argv,
VALUE  time 
) [static]
static VALUE time_gmtime ( VALUE  time  )  [static]
static VALUE time_hash ( VALUE  time  )  [static]

Definition at line 3376 of file time.c.

References GetTimeval, rb_hash(), time_object::timew, and w2v().

Referenced by Init_Time().

static VALUE time_hour ( VALUE  time  )  [static]

Definition at line 3889 of file time.c.

References GetTimeval, vtm::hour, INT2FIX, MAKE_TM, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_init ( int  argc,
VALUE argv,
VALUE  time 
) [static]

Definition at line 2234 of file time.c.

References time_init_0(), and time_init_1().

Referenced by Init_Time().

static VALUE time_init_0 ( VALUE  time  )  [static]
static VALUE time_init_1 ( int  argc,
VALUE argv,
VALUE  time 
) [static]
static VALUE time_init_copy ( VALUE  copy,
VALUE  time 
) [static]

Definition at line 3386 of file time.c.

References GetTimeval, MEMCPY, and time_modify().

Referenced by Init_Time(), and time_dup().

static VALUE time_isdst ( VALUE  time  )  [static]

Definition at line 4155 of file time.c.

References GetTimeval, vtm::isdst, MAKE_TM, Qtrue, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_load ( VALUE  klass,
VALUE  str 
) [static]

Definition at line 4689 of file time.c.

References time_mload(), and time_s_alloc().

Referenced by Init_Time().

static VALUE time_localtime ( VALUE  time  )  [static]
static VALUE time_localtime_m ( int  argc,
VALUE argv,
VALUE  time 
) [static]
static void time_mark ( void *  ptr  )  [static]
static VALUE time_mday ( VALUE  time  )  [static]

Definition at line 3911 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, vtm::mday, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_mdump ( VALUE  time  )  [static]
static size_t time_memsize ( const void *  tobj  )  [static]

Definition at line 1842 of file time.c.

static VALUE time_min ( VALUE  time  )  [static]

Definition at line 3869 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, vtm::min, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_minus ( VALUE  time1,
VALUE  time2 
) [static]

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().

static VALUE time_mload ( VALUE  time,
VALUE  str 
) [static]
static void time_modify ( VALUE  time  )  [static]
static VALUE time_mon ( VALUE  time  )  [static]

Definition at line 3933 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, vtm::mon, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_monday ( VALUE  time  )  [static]

Definition at line 4024 of file time.c.

References wday_p.

Referenced by Init_Time().

static VALUE time_new_timew ( VALUE  klass,
wideval_t  timew 
) [static]
static VALUE time_nsec ( VALUE  time  )  [static]

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().

static VALUE time_plus ( VALUE  time1,
VALUE  time2 
) [static]

Definition at line 3693 of file time.c.

References GetTimeval, IsTimeval, rb_eTypeError, rb_raise(), and time_add().

Referenced by Init_Time().

static VALUE time_round ( int  argc,
VALUE argv,
VALUE  time 
) [static]
static VALUE time_s_alloc ( VALUE  klass  )  [static]
static VALUE time_s_at ( int  argc,
VALUE argv,
VALUE  klass 
) [static]
static VALUE time_s_mktime ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 3115 of file time.c.

References FALSE, and time_utc_or_local().

Referenced by Init_Time().

static VALUE time_s_mkutc ( int  argc,
VALUE argv,
VALUE  klass 
) [static]

Definition at line 3084 of file time.c.

References time_utc_or_local(), and TRUE.

Referenced by Init_Time().

static VALUE time_s_now ( VALUE  klass  )  [static]

Definition at line 2449 of file time.c.

References NULL, and rb_class_new_instance().

Referenced by Init_Time().

static VALUE time_saturday ( VALUE  time  )  [static]

Definition at line 4104 of file time.c.

References wday_p.

Referenced by Init_Time().

static VALUE time_sec ( VALUE  time  )  [static]

Definition at line 3849 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, vtm::sec, and time_object::vtm.

Referenced by Init_Time().

static VALUE time_set_utc_offset ( VALUE  time,
VALUE  off 
) [static]
static VALUE time_strftime ( VALUE  time,
VALUE  format 
) [static]
static VALUE time_subsec ( VALUE  time  )  [static]

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().

static VALUE time_sunday ( VALUE  time  )  [static]

Definition at line 4008 of file time.c.

References wday_p.

Referenced by Init_Time().

static VALUE time_thursday ( VALUE  time  )  [static]

Definition at line 4072 of file time.c.

References wday_p.

Referenced by Init_Time().

static struct timespec time_timespec ( VALUE  num,
int  interval 
) [static, read]
static struct timeval time_timeval ( VALUE  num,
int  interval 
) [static, read]
static VALUE time_to_a ( VALUE  time  )  [static]
static VALUE time_to_f ( VALUE  time  )  [static]

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().

static VALUE time_to_i ( VALUE  time  )  [static]

Definition at line 3134 of file time.c.

References GetTimeval, TIME_SCALE, time_object::timew, w2v(), wdiv(), and WINT2FIXWV.

Referenced by Init_Time().

static VALUE time_to_r ( VALUE  time  )  [static]

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().

static VALUE time_to_s ( VALUE  time  )  [static]

Definition at line 3649 of file time.c.

References GetTimeval, strftimev(), and TIME_UTC_P.

Referenced by Init_Time().

static VALUE time_tuesday ( VALUE  time  )  [static]

Definition at line 4040 of file time.c.

References wday_p.

Referenced by Init_Time().

static VALUE time_usec ( VALUE  time  )  [static]

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().

static VALUE time_utc_offset ( VALUE  time  )  [static]

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().

static VALUE time_utc_or_local ( int  argc,
VALUE argv,
int  utc_p,
VALUE  klass 
) [static]

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().

static VALUE time_utc_p ( VALUE  time  )  [static]

Definition at line 3359 of file time.c.

References GetTimeval, and TIME_UTC_P.

Referenced by Init_Time().

static VALUE time_wday ( VALUE  time  )  [static]

Definition at line 3981 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::wday.

Referenced by Init_Time().

static VALUE time_wednesday ( VALUE  time  )  [static]

Definition at line 4056 of file time.c.

References wday_p.

Referenced by Init_Time().

static VALUE time_yday ( VALUE  time  )  [static]

Definition at line 4120 of file time.c.

References GetTimeval, INT2FIX, MAKE_TM, time_object::vtm, and vtm::yday.

Referenced by Init_Time().

static VALUE time_year ( VALUE  time  )  [static]

Definition at line 3953 of file time.c.

References GetTimeval, MAKE_TM, time_object::vtm, and vtm::year.

Referenced by Init_Time().

static VALUE time_zone ( VALUE  time  )  [static]
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().

static wideval_t timegmw ( struct vtm vtm  )  [static]
static wideval_t timegmw_noleapsecond ( struct vtm vtm  )  [static]
static wideval_t timelocalw ( struct vtm vtm  )  [static]
static wideval_t timespec2timew ( struct timespec ts  )  [static]
static wideval_t timet2wv ( time_t  t  )  [static]

Definition at line 792 of file time.c.

References FIXWV_MAX, FIXWV_MIN, TIMET_MIN, v2w(), and WINT2FIXWV.

static struct timespec timew2timespec ( wideval_t  timew  )  [static, read]
static struct timespec* timew2timespec_exact ( wideval_t  timew,
struct timespec ts 
) [static, read]
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().

static VALUE utc_offset_arg ( VALUE  arg  )  [static]
static wideval_t v2w ( VALUE  v  )  [inline, static]
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]
static void vtm_add_offset ( struct vtm vtm,
VALUE  off 
) [static]
static int vtmcmp ( struct vtm a,
struct vtm b 
) [static]

Definition at line 2997 of file time.c.

References vtm::hour, lt, vtm::mday, vtm::min, vtm::mon, ne, vtm::sec, vtm::subsecx, and vtm::year.

Referenced by timelocalw().

static VALUE w2v ( wideval_t  w  )  [inline, static]
static wideval_t wadd ( wideval_t  wx,
wideval_t  wy 
) [static]
static int wcmp ( wideval_t  wx,
wideval_t  wy 
) [static]

Definition at line 411 of file time.c.

References FIXWV2WINT, FIXWV_P, id_cmp, rb_cmpint(), rb_funcall(), and w2v().

Referenced by time_cmp().

static wideval_t wdiv ( wideval_t  wx,
wideval_t  wy 
) [static]

Definition at line 641 of file time.c.

References wdivmod().

Referenced by time_to_i().

static void wdivmod ( wideval_t  wn,
wideval_t  wd,
wideval_t wq,
wideval_t wr 
) [static]
static int weq ( wideval_t  wx,
wideval_t  wy 
) [static]

Definition at line 398 of file time.c.

References eq(), FIXWV_P, id_eq, rb_funcall(), RTEST, w2v(), and WIDEVAL_GET.

Referenced by timelocalw().

static int wi_mul ( wideint_t  x,
wideint_t  y,
wideint_t z 
) [static]

Definition at line 470 of file time.c.

References UWIDEINT_MAX, and WIDEINT_MAX.

Referenced by rb_time_magnify(), and wmul().

static wideval_t wmod ( wideval_t  wx,
wideval_t  wy 
) [static]

Definition at line 649 of file time.c.

References wdivmod().

Referenced by time_nsec(), time_subsec(), and time_usec().

static wideval_t wmul ( wideval_t  wx,
wideval_t  wy 
) [static]
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().

static wideval_t wquo ( wideval_t  wx,
wideval_t  wy 
) [static]

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().

static wideval_t wsub ( wideval_t  wx,
wideval_t  wy 
) [static]
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().


Variable Documentation

const int common_year_days_in_month[] [static]
Initial value:
 {
    31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
}

Definition at line 956 of file time.c.

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
      
}

Definition at line 925 of file time.c.

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 }, 
}

Definition at line 1430 of file time.c.

int compat_leap_month_table[7] [static]
Initial value:
 {

  2032, 2016, 2028, 2012, 2024, 2036, 2020, 
}

Definition at line 1471 of file time.c.

ID id_cmp [static]

Definition at line 28 of file time.c.

Referenced by cmp(), Init_Time(), and wcmp().

ID id_div [static]

Definition at line 28 of file time.c.

Referenced by Init_Time().

ID id_divmod [static]

Definition at line 27 of file time.c.

Referenced by divmodv(), Init_Time(), time_timespec(), and wdivmod().

ID id_eq [static]

Definition at line 28 of file time.c.

Referenced by eq(), Init_Time(), and weq().

ID id_lshift [static]

Definition at line 28 of file time.c.

Referenced by Init_Time().

ID id_mul [static]

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().

ID id_ne [static]

Definition at line 28 of file time.c.

Referenced by Init_Time().

ID id_offset [static]

Definition at line 27 of file time.c.

Referenced by Init_Time(), time_mdump(), and time_mload().

ID id_quo [static]

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]

Definition at line 1272 of file time.c.

const int leap_year_days_in_month[] [static]
Initial value:
 {
    31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
}

Definition at line 959 of file time.c.

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
      
}

Definition at line 940 of file time.c.

const char months[][4] [static]
Initial value:
 {
    "jan", "feb", "mar", "apr", "may", "jun",
    "jul", "aug", "sep", "oct", "nov", "dec",
}

Definition at line 2502 of file time.c.

Definition at line 1273 of file time.c.

Definition at line 835 of file time.c.

long this_year = 0 [static]

Definition at line 1271 of file time.c.

Initial value:
 {
    "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]

Definition at line 1020 of file time.c.