summaryrefslogtreecommitdiffstats
path: root/libkcal/libical/vzic-1.3/vzic.h
diff options
context:
space:
mode:
Diffstat (limited to 'libkcal/libical/vzic-1.3/vzic.h')
-rw-r--r--libkcal/libical/vzic-1.3/vzic.h196
1 files changed, 196 insertions, 0 deletions
diff --git a/libkcal/libical/vzic-1.3/vzic.h b/libkcal/libical/vzic-1.3/vzic.h
new file mode 100644
index 000000000..afa84d67b
--- /dev/null
+++ b/libkcal/libical/vzic-1.3/vzic.h
@@ -0,0 +1,196 @@
+/*
+ * Vzic - a program to convert Olson timezone database files into VZTIMEZONE
+ * files compatible with the iCalendar specification (RFC2445).
+ *
+ * Copyright (C) 2000-2001 Ximian, Inc.
+ * Copyright (C) 2003 Damon Chaplin.
+ *
+ * Author: Damon Chaplin <damon@gnome.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _VZIC_H_
+#define _VZIC_H_
+
+#include <glib.h>
+
+
+/*
+ * Global command-line options.
+ */
+
+/* By default we output Outlook-compatible output. If --pure is used we output
+ pure output, with no changes to be compatible with Outlook. */
+extern gboolean VzicPureOutput;
+
+extern gboolean VzicDumpOutput;
+extern gboolean VzicDumpChanges;
+extern gboolean VzicDumpZoneNamesAndCoords;
+extern gboolean VzicDumpZoneTranslatableStrings;
+extern gboolean VzicNoRRules;
+extern gboolean VzicNoRDates;
+extern char* VzicUrlPrefix;
+
+extern GList* VzicTimeZoneNames;
+
+/* The minimum & maximum years we can use. */
+#define YEAR_MINIMUM G_MININT
+#define YEAR_MAXIMUM G_MAXINT
+
+/* The maximum size of any complete pathname. */
+#define PATHNAME_BUFFER_SIZE 1024
+
+/* Days can be expressed either as a simple month day number, 1-31, or a rule
+ such as the last Sunday, or the first Monday on or after the 8th. */
+typedef enum
+{
+ DAY_SIMPLE,
+ DAY_WEEKDAY_ON_OR_AFTER,
+ DAY_WEEKDAY_ON_OR_BEFORE,
+ DAY_LAST_WEEKDAY
+} DayCode;
+
+
+/* Times can be given either as universal time (UTC), local standard time
+ (without daylight-saving adjustments) or wall clock time (local standard
+ time plus daylight-saving adjustments, i.e. what you would see on a clock
+ on the wall!). */
+typedef enum
+{
+ TIME_WALL,
+ TIME_STANDARD,
+ TIME_UNIVERSAL
+} TimeCode;
+
+
+/* This represents one timezone, e.g. "Africa/Algiers".
+ It contains the timezone name, and an array of ZoneLineData structs which
+ hold data from each Zone line, including the continuation lines. */
+typedef struct _ZoneData ZoneData;
+struct _ZoneData
+{
+ char *zone_name;
+
+ /* An array of ZoneLineData, one for each Zone & Zone continuation line
+ read in. */
+ GArray *zone_line_data;
+};
+
+
+typedef struct _ZoneLineData ZoneLineData;
+struct _ZoneLineData
+{
+ /* The amount of time to add to UTC to get local standard time for the
+ current time range, in seconds. */
+ int stdoff_seconds;
+
+ /* Either rules is set to the name of a set of rules, or rules is NULL and
+ save is set to the time to add to local standard time to get wall time, in
+ seconds. If save is 0 as well, then standard time always applies. */
+ char *rules;
+ int save_seconds;
+
+ /* The format to use for the abbreviated timezone name, e.g. WE%sT.
+ The %s is replaced by variable part of the name. (See the letter_s field
+ in the RuleData struct below). */
+ char *format;
+
+ /* TRUE if an UNTIL time is given. */
+ gboolean until_set;
+
+ /* The UNTIL year, e.g. 2000. */
+ int until_year;
+
+ /* The UNTIL month 0 (Jan) to 11 (Dec). */
+ int until_month;
+
+ /* The UNTIL day, either a simple month day number, 1-31, or a rule such as
+ the last Sunday, or the first Monday on or after the 8th. */
+ DayCode until_day_code;
+ int until_day_number; /* 1 to 31. */
+ int until_day_weekday; /* 0 (Sun) to 6 (Sat). */
+
+ /* The UNTIL time, in seconds from midnight. The code specifies whether the
+ time is a wall clock time, local standard time, or universal time. */
+ int until_time_seconds;
+ TimeCode until_time_code;
+};
+
+
+typedef struct _RuleData RuleData;
+struct _RuleData
+{
+ /* The first year that the rule applies to, e.g. 1996.
+ Can also be YEAR_MINIMUM. */
+ int from_year;
+
+ /* The last year that the rule applies to, e.g. 1996.
+ Can also be YEAR_MAXIMUM. */
+ int to_year;
+
+ /* A string used to only match certain years between from and to.
+ The rule only applies to the years which match. If type is NULL the rule
+ applies to all years betweeen from and to.
+ zic uses an external program called yearistype to check the string.
+ Currently it is not used in the Olson database. */
+ char *type;
+
+ /* The month of the rule 0 (Jan) to 11 (Dec). */
+ int in_month;
+
+ /* The day, either a simple month day number, 1-31, or a rule such as
+ the last Sunday, or the first Monday on or after the 8th. */
+ DayCode on_day_code;
+ int on_day_number;
+ int on_day_weekday; /* 0 (Sun) to 6 (Sat). */
+
+ /* The time, in seconds from midnight. The code specifies whether the
+ time is a wall clock time, local standard time, or universal time. */
+ int at_time_seconds;
+ TimeCode at_time_code;
+
+ /* The amount of time to add to local standard time when the rule is in
+ effect, in seconds. If this is not 0 then it must be a daylight-saving
+ time. */
+ int save_seconds;
+
+ /* The letter(s) to use as the variable part in the abbreviated timezone
+ name. If this is NULL then no variable part is used. (See the format field
+ in the ZoneLineData struct above.) */
+ char *letter_s;
+
+
+ /* This is set to TRUE if this element is a shallow copy of another one,
+ in which case we don't free any of the fields. */
+ gboolean is_shallow_copy;
+};
+
+
+typedef struct _ZoneDescription ZoneDescription;
+struct _ZoneDescription
+{
+ /* 2-letter ISO 3166 country code. */
+ char country_code[2];
+
+ /* latitude and longitude in degrees, minutes & seconds. The degrees value
+ holds the sign of the entire latitude/longitude. */
+ int latitude[3];
+ int longitude[3];
+
+ char *comment;
+};
+
+#endif /* _VZIC_H_ */