{
gint32 gmt_offset;
gboolean is_dst;
- gboolean is_standard;
- gboolean is_gmt;
gchar *abbrev;
} TransitionInfo;
info.gmt_offset = offset;
info.is_dst = FALSE;
- info.is_standard = TRUE;
- info.is_gmt = TRUE;
info.abbrev = g_strdup (name);
{
gsize size;
guint index;
- guint32 time_count, type_count, leap_count, isgmt_count;
- guint32 isstd_count, char_count ;
+ guint32 time_count, type_count;
guint8 *tz_transitions, *tz_type_index, *tz_ttinfo;
- guint8 *tz_leaps, *tz_isgmt, *tz_isstd;
guint8 *tz_abbrs;
- gsize timesize = sizeof (gint32), countsize = sizeof (gint32);
+ gsize timesize = sizeof (gint32);
const struct tzhead *header = g_bytes_get_data (zoneinfo, &size);
g_return_if_fail (size >= sizeof (struct tzhead) &&
}
time_count = guint32_from_be(header->tzh_timecnt);
type_count = guint32_from_be(header->tzh_typecnt);
- leap_count = guint32_from_be(header->tzh_leapcnt);
- isgmt_count = guint32_from_be(header->tzh_ttisgmtcnt);
- isstd_count = guint32_from_be(header->tzh_ttisstdcnt);
- char_count = guint32_from_be(header->tzh_charcnt);
-
- g_assert (type_count == isgmt_count);
- g_assert (type_count == isstd_count);
tz_transitions = ((guint8 *) (header) + sizeof (*header));
tz_type_index = tz_transitions + timesize * time_count;
tz_ttinfo = tz_type_index + time_count;
tz_abbrs = tz_ttinfo + sizeof (struct ttinfo) * type_count;
- tz_leaps = tz_abbrs + char_count;
- tz_isstd = tz_leaps + (timesize + countsize) * leap_count;
- tz_isgmt = tz_isstd + isstd_count;
gtz->t_info = g_array_sized_new (FALSE, TRUE, sizeof (TransitionInfo),
type_count);
struct ttinfo info = ((struct ttinfo*)tz_ttinfo)[index];
t_info.gmt_offset = gint32_from_be (info.tt_gmtoff);
t_info.is_dst = info.tt_isdst ? TRUE : FALSE;
- t_info.is_standard = tz_isstd[index] ? TRUE : FALSE;
- t_info.is_gmt = tz_isgmt[index] ? TRUE : FALSE;
t_info.abbrev = g_strdup ((gchar *) &tz_abbrs[info.tt_abbrind]);
g_array_append_val (gtz->t_info, t_info);
}
info->gmt_offset = offset;
info->is_dst = is_dst;
- info->is_standard = FALSE;
- info->is_gmt = FALSE;
if (name)
info->abbrev = g_strdup (name);
* In Windows, @identifier can also be the unlocalized name of a time
* zone for standard time, for example "Pacific Standard Time".
*
- * Valid RFC3339 time offsets are <literal>"Z"</literal> (for UTC) or
- * <literal>"±hh:mm"</literal>. ISO 8601 additionally specifies
- * <literal>"±hhmm"</literal> and <literal>"±hh"</literal>. Offsets are
+ * Valid RFC3339 time offsets are `"Z"` (for UTC) or
+ * `"±hh:mm"`. ISO 8601 additionally specifies
+ * `"±hhmm"` and `"±hh"`. Offsets are
* time values to be added to Coordinated Universal Time (UTC) to get
* the local time.
*
- * In Unix, the `TZ` environment variable typically corresponds
+ * In UNIX, the `TZ` environment variable typically corresponds
* to the name of a file in the zoneinfo database, or string in
* "std offset [dst [offset],start[/time],end[/time]]" (POSIX) format.
* There are no spaces in the specification. The name of standard
* and daylight savings time zone must be three or more alphabetic
* characters. Offsets are time values to be added to local time to
* get Coordinated Universal Time (UTC) and should be
- * <literal>"[±]hh[[:]mm[:ss]]"</literal>. Dates are either
- * <literal>"Jn"</literal> (Julian day with n between 1 and 365, leap
- * years not counted), <literal>"n"</literal> (zero-based Julian day
- * with n between 0 and 365) or <literal>"Mm.w.d"</literal> (day d
+ * `"[±]hh[[:]mm[:ss]]"`. Dates are either
+ * `"Jn"` (Julian day with n between 1 and 365, leap
+ * years not counted), `"n"` (zero-based Julian day
+ * with n between 0 and 365) or `"Mm.w.d"` (day d
* (0 <= d <= 6) of week w (1 <= w <= 5) of month m (1 <= m <= 12), day
* 0 is a Sunday). Times are in local wall clock time, the default is
* 02:00:00.
*
* g_time_zone_new_local() calls this function with the value of the
* `TZ` environment variable. This function itself is independent of
- * the value of `TZ`, but if @identifier is %NULL then
- * <filename>/etc/localtime</filename> will be consulted
- * to discover the correct time zone on Unix and the registry will be
- * consulted or GetTimeZoneInformation() will be used to get the local
- * time zone on Windows.
+ * the value of `TZ`, but if @identifier is %NULL then `/etc/localtime`
+ * will be consulted to discover the correct time zone on UNIX and the
+ * registry will be consulted or GetTimeZoneInformation() will be used
+ * to get the local time zone on Windows.
*
* If intervals are not available, only time zone rules from `TZ`
* environment variable or other means, then they will be computed
* available and it is greater than 2037, then it will followed
* instead.
*
- * See <ulink
- * url='http://tools.ietf.org/html/rfc3339#section-5.6'>RFC3339
- * §5.6</ulink> for a precise definition of valid RFC3339 time offsets
- * (the <literal>time-offset</literal> expansion) and ISO 8601 for the
- * full list of valid time offsets. See <ulink
- * url='http://www.gnu.org/s/libc/manual/html_node/TZ-Variable.html'>The
- * GNU C Library manual</ulink> for an explanation of the possible
- * values of the `TZ` environment variable. See <ulink
- * url='http://msdn.microsoft.com/en-us/library/ms912391%28v=winembedded.11%29.aspx'>
- * Microsoft Time Zone Index Values</ulink> for the list of time zones
- * on Windows.
+ * See
+ * [RFC3339 §5.6](http://tools.ietf.org/html/rfc3339#section-5.6)
+ * for a precise definition of valid RFC3339 time offsets
+ * (the `time-offset` expansion) and ISO 8601 for the
+ * full list of valid time offsets. See
+ * [The GNU C Library manual](http://www.gnu.org/s/libc/manual/html_node/TZ-Variable.html)
+ * for an explanation of the possible
+ * values of the `TZ` environment variable. See
+ * [Microsoft Time Zone Index Values](http://msdn.microsoft.com/en-us/library/ms912391%28v=winembedded.11%29.aspx)
+ * for the list of time zones on Windows.
*
* You should release the return value by calling g_time_zone_unref()
* when you are done with it.
}
-inline static gboolean
-interval_isgmt (GTimeZone *tz,
- guint interval)
-{
- g_return_val_if_fail (tz->t_info != NULL, 0);
- return interval_info (tz, interval)->is_gmt;
-}
-
-inline static gboolean
-interval_isstandard (GTimeZone *tz,
- guint interval)
-{
- return interval_info (tz, interval)->is_standard;
-}
-
inline static gchar*
interval_abbrev (GTimeZone *tz,
guint interval)
* If @type is %G_TIME_TYPE_UNIVERSAL then this function will always
* succeed (since universal time is monotonic and continuous).
*
- * Otherwise @time_ is treated is local time. The distinction between
+ * Otherwise @time_ is treated as local time. The distinction between
* %G_TIME_TYPE_STANDARD and %G_TIME_TYPE_DAYLIGHT is ignored except in
* the case that the given @time_ is ambiguous. In Toronto, for example,
* 01:30 on November 7th 2010 occurred twice (once inside of daylight