summaryrefslogtreecommitdiff
path: root/ext/date/lib/timelib_structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/date/lib/timelib_structs.h')
-rw-r--r--ext/date/lib/timelib_structs.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/date/lib/timelib_structs.h b/ext/date/lib/timelib_structs.h
index 373fecb9c2..074c558f40 100644
--- a/ext/date/lib/timelib_structs.h
+++ b/ext/date/lib/timelib_structs.h
@@ -125,6 +125,11 @@ typedef struct timelib_time_offset {
timelib_sll transistion_time;
} timelib_time_offset;
+typedef struct timelib_special {
+ unsigned int type;
+ timelib_sll amount;
+} timelib_special;
+
typedef struct timelib_time {
timelib_sll y, m, d; /* Year, Month, Day */
timelib_sll h, i, s; /* Hour, mInute, Second */
@@ -134,10 +139,11 @@ typedef struct timelib_time {
timelib_tzinfo *tz_info; /* Timezone structure */
signed int dst; /* Flag if we were parsing a DST zone */
timelib_rel_time relative;
+ timelib_special special;
timelib_sll sse; /* Seconds since epoch */
- unsigned int have_time, have_date, have_zone, have_relative, have_weekday_relative, have_weeknr_day;
+ unsigned int have_time, have_date, have_zone, have_relative, have_weekday_relative, have_special_relative, have_weeknr_day;
unsigned int sse_uptodate; /* !0 if the sse member is up to date with the date/time members */
unsigned int tim_uptodate; /* !0 if the date/time members are up to date with the sse member */
@@ -173,17 +179,17 @@ typedef struct _timelib_tzdb_index_entry {
} timelib_tzdb_index_entry;
typedef struct _timelib_tzdb {
- char *version;
- int index_size;
- timelib_tzdb_index_entry *index;
- char *data;
+ char *version;
+ int index_size;
+ const timelib_tzdb_index_entry *index;
+ const unsigned char *data;
} timelib_tzdb;
#define TIMELIB_ZONETYPE_OFFSET 1
#define TIMELIB_ZONETYPE_ABBR 2
#define TIMELIB_ZONETYPE_ID 3
-#define SECS_PER_ERA 12622780800L
+#define SECS_PER_ERA 12622780800LL
#define SECS_PER_DAY 86400
#define DAYS_PER_YEAR 365
#define DAYS_PER_LYEAR 366