summaryrefslogtreecommitdiff
path: root/recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch')
-rw-r--r--recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch258
1 files changed, 0 insertions, 258 deletions
diff --git a/recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch b/recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch
deleted file mode 100644
index 10843182e9..0000000000
--- a/recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-diff -uNr libmimedir-0.4.0/bin/ical-dump.c libmimedir-0.4.0cvs20061111/bin/ical-dump.c
---- libmimedir-0.4.0/bin/ical-dump.c 2005-09-01 17:36:27.000000000 +0200
-+++ libmimedir-0.4.0cvs20061111/bin/ical-dump.c 2006-11-11 19:14:19.000000000 +0100
-@@ -144,7 +144,7 @@
- print_component (MIMEDirVComponent *component)
- {
- gchar *s, *summary, *categories, *uid;
-- guint priority, seq;
-+ guint priority, seq, duration;
- MIMEDirDateTime *dtstart, *dtend, *due;
- MIMEDirRecurrence *recur;
-
-@@ -161,6 +161,7 @@
-
- "dtstart", &dtstart,
- "dtend", &dtend,
-+ "duration", &duration,
- "due", &due,
- "recurrence", &recur,
-
-@@ -207,6 +208,9 @@
-
- }
- }
-+ if (duration) {
-+ printf (_(" Duration: %ds\n"), duration);
-+ }
- if (due && mimedir_datetime_is_valid (due)) {
- s = mimedir_datetime_to_string (due);
- if (s) {
-diff -uNr libmimedir-0.4.0/mimedir/mimedir-recurrence.c libmimedir-0.4.0cvs20061111/mimedir/mimedir-recurrence.c
---- libmimedir-0.4.0/mimedir/mimedir-recurrence.c 2005-10-08 08:46:36.000000000 +0200
-+++ libmimedir-0.4.0cvs20061111/mimedir/mimedir-recurrence.c 2006-11-11 15:47:28.000000000 +0100
-@@ -56,7 +56,8 @@
- PROP_COUNT,
- PROP_INTERVAL,
- PROP_UNIT,
-- PROP_UNITLIST
-+ PROP_UNITLIST,
-+ PROP_WKST
- };
-
- struct _MIMEDirRecurrencePriv {
-@@ -67,6 +68,7 @@
-
- MIMEDirRecurrenceUnit unit;
- gchar *units;
-+ guint8 wkst;
- };
-
- static GObjectClass *parent_class = NULL;
-@@ -167,6 +169,50 @@
- return -1;
- }
-
-+static const gchar *
-+weekday_to_string (GDateWeekday weekday)
-+{
-+ switch (weekday) {
-+ case G_DATE_MONDAY:
-+ return "MO";
-+ case G_DATE_TUESDAY:
-+ return "TU";
-+ case G_DATE_WEDNESDAY:
-+ return "WE";
-+ case G_DATE_THURSDAY:
-+ return "TH";
-+ case G_DATE_FRIDAY:
-+ return "FR";
-+ case G_DATE_SATURDAY:
-+ return "SA";
-+ case G_DATE_SUNDAY:
-+ return "SU";
-+ default:
-+ g_return_val_if_reached (NULL);
-+ }
-+}
-+
-+static GDateWeekday
-+string_to_weekday (const gchar *s)
-+{
-+ if (strcmp (s, "MO") == 0)
-+ return G_DATE_MONDAY;
-+ else if (strcmp (s, "TU") == 0)
-+ return G_DATE_TUESDAY;
-+ else if (strcmp (s, "WE") == 0)
-+ return G_DATE_WEDNESDAY;
-+ else if (strcmp (s, "TH") == 0)
-+ return G_DATE_THURSDAY;
-+ else if (strcmp (s, "FR") == 0)
-+ return G_DATE_FRIDAY;
-+ else if (strcmp (s, "SA") == 0)
-+ return G_DATE_SATURDAY;
-+ else if (strcmp (s, "SU") == 0)
-+ return G_DATE_SUNDAY;
-+ else
-+ return G_DATE_BAD_WEEKDAY;
-+}
-+
- /*
- * Class and Object Management
- */
-@@ -261,6 +307,14 @@
- NULL,
- G_PARAM_READWRITE);
- g_object_class_install_property (gobject_class, PROP_UNITLIST, pspec);
-+ pspec = g_param_spec_uint ("wkst",
-+ _("Workweek start"),
-+ _("The day on which the workweek starts"),
-+ G_DATE_BAD_WEEKDAY,
-+ G_DATE_SUNDAY,
-+ G_DATE_BAD_WEEKDAY,
-+ G_PARAM_READWRITE);
-+ g_object_class_install_property (gobject_class, PROP_WKST, pspec);
- }
-
-
-@@ -273,6 +327,7 @@
- recurrence->priv = g_new0 (MIMEDirRecurrencePriv, 1);
- recurrence->priv->freq = RECURRENCE_DAILY;
- recurrence->priv->unit = RECURRENCE_UNIT_NONE;
-+ recurrence->priv->wkst = G_DATE_BAD_WEEKDAY;
- }
-
-
-@@ -335,6 +390,9 @@
- case PROP_UNITLIST:
- mimedir_utils_set_property_string (&priv->units, value);
- break;
-+ case PROP_WKST:
-+ priv->wkst = g_value_get_uint (value);
-+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
-@@ -375,6 +433,9 @@
- case PROP_UNITLIST:
- g_value_set_string (value, priv->units);
- break;
-+ case PROP_WKST:
-+ g_value_set_uint (value, priv->wkst);
-+ break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- return;
-@@ -512,6 +573,17 @@
- g_object_set (G_OBJECT (recurrence), "unit", unit, NULL);
- g_object_set (G_OBJECT (recurrence), "units", value, NULL);
- }
-+ else if (!strcasecmp (name, "WKST")) {
-+ GDateWeekday weekday;
-+
-+ weekday = string_to_weekday (value);
-+ if (!g_date_valid_weekday (weekday)) {
-+ ret = FALSE;
-+ break;
-+ }
-+
-+ g_object_set (G_OBJECT (recurrence), "wkst", weekday, NULL);
-+ }
- else {
- ret = FALSE;
- break;
-@@ -571,5 +643,11 @@
- g_string_append_printf (string, ";%s=%s", unit, priv->units);
- }
-
-+ if (g_date_valid_weekday (priv->wkst)) {
-+ const gchar *weekday;
-+ weekday = weekday_to_string (priv->wkst);
-+ g_string_append_printf (string, ";WKST=%s", weekday);
-+ }
-+
- return g_string_free (string, FALSE);
- }
-
---- libmimedir-0.4.0/mimedir/mimedir-vcomponent.c 2006-12-01 12:53:26.000000000 +0100
-+++ libmimedir-0.4.0cvs20061111/mimedir/mimedir-vcomponent.c 2006-11-11 19:08:26.000000000 +0100
-@@ -908,6 +905,7 @@
- const gchar *s;
- gint duration = 0;
- gboolean neg = FALSE;
-+ gboolean dur_week = FALSE;
-
- g_return_val_if_fail (error == NULL || *error == NULL, 0);
-
-@@ -939,48 +937,52 @@
-
- if (s[0] == 'D' || s[0] == 'd')
- duration = num * SECS_PER_DAY;
-- else if (s[0] == 'W' || s[0] == 'w')
-+ else if (s[0] == 'W' || s[0] == 'w') {
- duration = num * SECS_PER_WEEK;
-- else {
-+ dur_week = TRUE;
-+ } else {
- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name);
- return 0;
- }
- s++;
- }
-
-- if (s[0] == 'T' || s[0] == 't') {
-- GError *err = NULL;
-- guint num;
-+ if ((s[0] == 'T' || s[0] == 't') && !dur_week) {
-+ guint state = 0;
-
- s++;
-
-- while (s[0] != '\0') {
-+ while (state < 3) {
-+ GError *err = NULL;
-+ guint num;
-+
- num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err);
- if (err) {
- g_propagate_error (error, err);
- return 0;
- }
--
-- switch (s[0]) {
-- case 'H':
-- s++;
-+ if (s[0] == 'H' && state < 1) {
- duration += num * SECS_PER_HOUR;
-- break;
-- case 'M':
-- s++;
-+ state = 1;
-+ } else if (s[0] == 'M' && state < 2) {
- duration += num * SECS_PER_MINUTE;
-- break;
-- case 'S':
-- s++;
-- duration += num;
-- break;
-- default:
-+ state = 2;
-+ } else if (s[0] == 'S' && state < 3) {
-+ duration += num ;
-+ state = 3;
-+ } else {
- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name);
- return 0;
- }
-+ s++;
- }
- }
-
-+ if (s[0] != '\0') {
-+ g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name);
-+ return 0;
-+ }
-+
- return neg ? -duration : duration;
- }
-