diff options
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.patch | 258 |
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; - } - |