From 86369d52f1474142f3b8855b1a17c2e555c03bd1 Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Sat, 25 Sep 2010 19:30:13 +0200 Subject: libmimedir : moved unused files to obsolete dir Signed-off-by: Frans Meulenbroeks --- recipes/libmimedir/files/gslist-fix.patch | 11 - .../files/libmimedir-0.4.0-duration-wkst.patch | 258 ------------- recipes/libmimedir/files/mimedir-update.patch | 403 --------------------- .../libmimedir/files/mimedir-write-sequence.patch | 51 --- recipes/obsolete/libmimedir/files/gslist-fix.patch | 11 + .../files/libmimedir-0.4.0-duration-wkst.patch | 258 +++++++++++++ .../obsolete/libmimedir/files/mimedir-update.patch | 403 +++++++++++++++++++++ .../libmimedir/files/mimedir-write-sequence.patch | 51 +++ 8 files changed, 723 insertions(+), 723 deletions(-) delete mode 100644 recipes/libmimedir/files/gslist-fix.patch delete mode 100644 recipes/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch delete mode 100644 recipes/libmimedir/files/mimedir-update.patch delete mode 100644 recipes/libmimedir/files/mimedir-write-sequence.patch create mode 100644 recipes/obsolete/libmimedir/files/gslist-fix.patch create mode 100644 recipes/obsolete/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch create mode 100644 recipes/obsolete/libmimedir/files/mimedir-update.patch create mode 100644 recipes/obsolete/libmimedir/files/mimedir-write-sequence.patch diff --git a/recipes/libmimedir/files/gslist-fix.patch b/recipes/libmimedir/files/gslist-fix.patch deleted file mode 100644 index ef28ecdc53..0000000000 --- a/recipes/libmimedir/files/gslist-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/mimedir-attribute.c 2006-08-12 19:55:04.000000000 +0200 -+++ libmimedir/mimedir/mimedir-attribute.c 2006-08-12 19:55:49.938306000 +0200 -@@ -1768,7 +1768,7 @@ - } - break; - case ',': -- g_slist_append (list, g_string_free (string, FALSE)); -+ list = g_slist_append (list, g_string_free (string, FALSE)); - string = g_string_new (""); - break; - case '\r': 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; - } - diff --git a/recipes/libmimedir/files/mimedir-update.patch b/recipes/libmimedir/files/mimedir-update.patch deleted file mode 100644 index f3be39eb53..0000000000 --- a/recipes/libmimedir/files/mimedir-update.patch +++ /dev/null @@ -1,403 +0,0 @@ -diff -Nur libmimedir_orig/Makefile.am libmimedir/Makefile.am ---- libmimedir_orig/Makefile.am 2002-08-15 15:36:01.000000000 +0200 -+++ libmimedir/Makefile.am 2006-08-04 15:51:06.000000000 +0200 -@@ -5,7 +5,22 @@ - mimedir-1.0.pc.in \ - intltool-extract.in \ - intltool-merge.in \ -- intltool-update.in -+ intltool-update.in \ -+ debian/changelog \ -+ debian/copyright \ -+ debian/control \ -+ debian/compat \ -+ debian/rules \ -+ debian/libmimedir0.files \ -+ debian/libmimedir-dev.files -+ - - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = mimedir-1.0.pc -+ -+deb: dist -+ -mkdir $(top_builddir)/debian-build -+ cd $(top_builddir)/debian-build && tar zxf ../$(top_builddir)/$(PACKAGE)-$(VERSION).tar.gz -+ cd $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) && dpkg-buildpackage -S -D -rfakeroot -+ cd $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) && dpkg-buildpackage -D -rfakeroot -+ -rm -rf $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) -diff -Nur libmimedir_orig/configure.in libmimedir/configure.in ---- libmimedir_orig/configure.in 2006-02-09 13:30:13.000000000 +0100 -+++ libmimedir/configure.in 2006-08-04 15:51:06.000000000 +0200 -@@ -3,7 +3,7 @@ - AC_INIT(MIME Directory Library, 0.4.0, mailto:srittau@jroger.in-berlin.de, libmimedir) - AC_PREREQ(2.53) - AC_CONFIG_SRCDIR(mimedir/mimedir-attribute.c) --AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -+AM_INIT_AUTOMAKE(libmimedir, AC_PACKAGE_VERSION) - AC_PROG_INTLTOOL - AM_CONFIG_HEADER(config.h) - -diff -Nur libmimedir_orig/mimedir/Makefile.am libmimedir/mimedir/Makefile.am ---- libmimedir_orig/mimedir/Makefile.am 2002-12-19 16:21:27.000000000 +0100 -+++ libmimedir/mimedir/Makefile.am 2006-08-04 15:56:36.000000000 +0200 -@@ -26,6 +26,7 @@ - mimedir-period.c \ - mimedir-profile.c \ - mimedir-recurrence.c \ -+ mimedir-recurrence-rule.c \ - mimedir-utils.c \ - mimedir-utils.h \ - mimedir-valarm.c \ -@@ -52,6 +53,7 @@ - mimedir-period.h \ - mimedir-profile.h \ - mimedir-recurrence.h \ -+ mimedir-recurrence-rule.h \ - mimedir-valarm.h \ - mimedir-vcal.h \ - mimedir-vcard.h \ -diff -Nur libmimedir_orig/mimedir/mimedir-attribute.c libmimedir/mimedir/mimedir-attribute.c ---- libmimedir_orig/mimedir/mimedir-attribute.c 2006-01-01 04:38:29.000000000 +0100 -+++ libmimedir/mimedir/mimedir-attribute.c 2006-08-04 15:51:06.000000000 +0200 -@@ -1417,7 +1417,7 @@ - g_return_val_if_fail (parameter != NULL, FALSE); - - p = mimedir_attribute_get_parameter (attribute, parameter); -- if (p) -+ if (p && p->values) - return (gchar *) p->values->data; - else - return NULL; -diff -Nur libmimedir_orig/mimedir/mimedir-recurrence-rule.c libmimedir/mimedir/mimedir-recurrence-rule.c ---- libmimedir_orig/mimedir/mimedir-recurrence-rule.c 1970-01-01 01:00:00.000000000 +0100 -+++ libmimedir/mimedir/mimedir-recurrence-rule.c 2006-08-04 15:52:39.000000000 +0200 -@@ -0,0 +1,171 @@ -+/* RFC 2445 iCal Recurrence Rule Object -+ * Copyright (C) 2004 Phil Blundell -+ * -+ * $Id: mimedir-recurrence.h,v 1.1 2002/08/28 04:57:12 srittau Exp $ -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library 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 -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ */ -+ -+#ifdef HAVE_CONFIG_H -+#include -+#endif -+ -+#include "mimedir-recurrence-rule.h" -+ -+ -+#ifndef _ -+#define _(x) (dgettext(GETTEXT_PACKAGE, (x))) -+#endif -+ -+ -+static void mimedir_recurrence_rule_class_init (MIMEDirRecurrenceRuleClass *klass); -+static void mimedir_recurrence_rule_init (MIMEDirRecurrenceRule *recurrence); -+static void mimedir_recurrence_rule_dispose (GObject *object); -+ -+ -+struct _MIMEDirRecurrenceRulePriv { -+ MIMEDirRecurrenceFrequency frequency; -+ int interval; -+}; -+ -+static GObjectClass *parent_class = NULL; -+ -+/* -+ * Class and Object Management -+ */ -+ -+GType -+mimedir_recurrence_rule_get_type (void) -+{ -+ static GType mimedir_recurrence_rule_type = 0; -+ -+ if (!mimedir_recurrence_rule_type) { -+ static const GTypeInfo mimedir_recurrence_rule_info = { -+ sizeof (MIMEDirRecurrenceRuleClass), -+ NULL, /* base_init */ -+ NULL, /* base_finalize */ -+ (GClassInitFunc) mimedir_recurrence_rule_class_init, -+ NULL, /* class_finalize */ -+ NULL, /* class_data */ -+ sizeof (MIMEDirRecurrenceRule), -+ 1, /* n_preallocs */ -+ (GInstanceInitFunc) mimedir_recurrence_rule_init, -+ }; -+ -+ mimedir_recurrence_rule_type = g_type_register_static (G_TYPE_OBJECT, -+ "MIMEDirRecurrenceRule", -+ &mimedir_recurrence_rule_info, -+ 0); -+ } -+ -+ return mimedir_recurrence_rule_type; -+} -+ -+ -+static void -+mimedir_recurrence_rule_class_init (MIMEDirRecurrenceRuleClass *klass) -+{ -+ GObjectClass *gobject_class; -+ -+ g_return_if_fail (klass != NULL); -+ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE_CLASS (klass)); -+ -+ gobject_class = G_OBJECT_CLASS (klass); -+ -+ gobject_class->dispose = mimedir_recurrence_rule_dispose; -+ -+ parent_class = g_type_class_peek_parent (klass); -+} -+ -+ -+static void -+mimedir_recurrence_rule_init (MIMEDirRecurrenceRule *rule) -+{ -+ MIMEDirRecurrenceRulePriv *priv; -+ -+ g_return_if_fail (rule != NULL); -+ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule)); -+ -+ priv = g_new0 (MIMEDirRecurrenceRulePriv, 1); -+ rule->priv = priv; -+} -+ -+ -+static void -+mimedir_recurrence_rule_dispose (GObject *object) -+{ -+ MIMEDirRecurrenceRule *rule; -+ -+ g_return_if_fail (object != NULL); -+ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE (object)); -+ -+ rule = MIMEDIR_RECURRENCE_RULE (object); -+ -+ g_free (rule->priv); -+ rule->priv = NULL; -+ -+ G_OBJECT_CLASS (parent_class)->dispose (object); -+} -+ -+/* -+ * Public Methods -+ */ -+ -+/** -+ * mimedir_recurrence_rule_new: -+ * -+ * Creates a new iCal recurrence object. -+ * -+ * Return value: a new recurrence object -+ **/ -+MIMEDirRecurrenceRule * -+mimedir_recurrence_rule_new (void) -+{ -+ MIMEDirRecurrenceRule *rule; -+ -+ rule = g_object_new (MIMEDIR_TYPE_RECURRENCE_RULE, NULL); -+ -+ return rule; -+} -+ -+/** -+ * mimedir_recurrence_rule_get_frequency: -+ * -+ * Retrieves the base frequency for the corresponding recurrence object. -+ * -+ * Return value: a #MIMEDirRecurrenceFrequency -+ **/ -+MIMEDirRecurrenceFrequency -+mimedir_recurrence_rule_get_frequency (MIMEDirRecurrenceRule *rule) -+{ -+ g_return_val_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule), 0); -+ -+ return rule->priv->frequency; -+} -+ -+/** -+ * mimedir_recurrence_rule_get_interval: -+ * -+ * Retrieves the interval for the corresponding recurrence object. -+ * -+ * Return value: an #int -+ **/ -+int -+mimedir_recurrence_rule_get_interval (MIMEDirRecurrenceRule *rule) -+{ -+ g_return_val_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule), 0); -+ -+ return rule->priv->interval; -+} -diff -Nur libmimedir_orig/mimedir/mimedir-recurrence-rule.h libmimedir/mimedir/mimedir-recurrence-rule.h ---- libmimedir_orig/mimedir/mimedir-recurrence-rule.h 1970-01-01 01:00:00.000000000 +0100 -+++ libmimedir/mimedir/mimedir-recurrence-rule.h 2006-08-04 15:52:39.000000000 +0200 -@@ -0,0 +1,74 @@ -+/* RFC 2445 iCal Recurrence Rule Object -+ * Copyright (C) 2004 Phil Blundell -+ * -+ * $Id: mimedir-recurrence.h,v 1.1 2002/08/28 04:57:12 srittau Exp $ -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library 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 -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ */ -+ -+#ifndef __MIMEDIR_RECURRENCE_RULE_H__ -+#define __MIMEDIR_RECURRENCE_RULE_H__ -+ -+#include -+#include -+ -+#include "mimedir/mimedir-datetime.h" -+ -+#define MIMEDIR_TYPE_RECURRENCE_RULE (mimedir_recurrence_get_type()) -+#define MIMEDIR_RECURRENCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIMEDIR_TYPE_RECURRENCE_RULE, MIMEDirRecurrenceRule)) -+#define MIMEDIR_RECURRENCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MIMEDIR_TYPE_RECURRENCE_RULE, MIMEDirRecurrenceRuleClass)) -+#define MIMEDIR_IS_RECURRENCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIMEDIR_TYPE_RECURRENCE_RULE)) -+#define MIMEDIR_IS_RECURRENCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MIMEDIR_TYPE_RECURRENCE_RULE)) -+ -+typedef struct _MIMEDirRecurrenceRule MIMEDirRecurrenceRule; -+typedef struct _MIMEDirRecurrenceRulePriv MIMEDirRecurrenceRulePriv; -+typedef struct _MIMEDirRecurrenceRuleClass MIMEDirRecurrenceRuleClass; -+ -+typedef enum { -+ MIMEDIR_RECURRENCE_RULE_SECONDLY, -+ MIMEDIR_RECURRENCE_RULE_MINUTELY, -+ MIMEDIR_RECURRENCE_RULE_HOURLY, -+ MIMEDIR_RECURRENCE_RULE_DAILY, -+ MIMEDIR_RECURRENCE_RULE_WEEKLY, -+ MIMEDIR_RECURRENCE_RULE_MONTHLY, -+ MIMEDIR_RECURRENCE_RULE_YEARLY, -+} MIMEDirRecurrenceFrequency; -+ -+struct _MIMEDirRecurrenceRule -+{ -+ GObject parent; -+ -+ MIMEDirRecurrenceRulePriv *priv; -+}; -+ -+struct _MIMEDirRecurrenceRuleClass -+{ -+ GObjectClass parent_class; -+}; -+ -+MIMEDirRecurrenceFrequency mimedir_recurrence_rule_get_frequency (MIMEDirRecurrenceRule *); -+int mimedir_recurrence_rule_get_interval (MIMEDirRecurrenceRule *); -+int mimedir_recurrence_rule_get_count (MIMEDirRecurrenceRule *); -+MIMEDirDateTime *mimedir_recurrence_rule_get_end_date (MIMEDirRecurrenceRule *); -+ -+void mimedir_recurrence_rule_set (MIMEDirRecurrenceRule *, -+ MIMEDirRecurrenceFrequency freq, -+ int interval); -+ -+GType mimedir_recurrence_rule_get_type (void); -+MIMEDirRecurrenceRule *mimedir_recurrence_rule_new (void); -+ -+#endif -+ -diff -Nur libmimedir_orig/mimedir/mimedir-vcomponent.c libmimedir/mimedir/mimedir-vcomponent.c ---- libmimedir_orig/mimedir/mimedir-vcomponent.c 2005-11-26 16:40:20.000000000 +0100 -+++ libmimedir/mimedir/mimedir-vcomponent.c 2006-08-04 15:51:06.000000000 +0200 -@@ -951,52 +951,33 @@ - - s++; - -- num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); -- if (err) { -- g_propagate_error (error, err); -- return 0; -- } -- if (s[0] != 'H') { -- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); -- return 0; -- } -- s++; -- duration += num * SECS_PER_HOUR; -- -- if (s[0]) { -+ while (s[0] != '\0') { - num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); - if (err) { - g_propagate_error (error, err); - return 0; - } -- if (s[0] != 'M') { -- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); -- return 0; -- } -- s++; -- duration += num * SECS_PER_MINUTE; -- } - -- if (s[0]) { -- num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); -- if (err) { -- g_propagate_error (error, err); -- return 0; -- } -- if (s[0] != 'S') { -+ switch (s[0]) { -+ case 'H': -+ s++; -+ duration += num * SECS_PER_HOUR; -+ break; -+ case 'M': -+ s++; -+ duration += num * SECS_PER_MINUTE; -+ break; -+ case 'S': -+ s++; -+ duration += num; -+ break; -+ default: - g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); - return 0; - } -- s++; -- duration += num; - } - } - -- 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; - } - -@@ -2996,7 +2977,7 @@ - g_free (priv->location); - g_free (priv->location_alt); - priv->location = g_strdup (location); -- priv->location_alt = g_strdup (uri); -+ priv->location_alt = uri ? g_strdup (uri) : NULL; - } - - /** diff --git a/recipes/libmimedir/files/mimedir-write-sequence.patch b/recipes/libmimedir/files/mimedir-write-sequence.patch deleted file mode 100644 index b03c5d9ca7..0000000000 --- a/recipes/libmimedir/files/mimedir-write-sequence.patch +++ /dev/null @@ -1,51 +0,0 @@ -? mimedir/.deps -? mimedir/.libs -? mimedir/libmimedir.la -? mimedir/mimedir-attachment.lo -? mimedir/mimedir-attendee.lo -? mimedir/mimedir-attribute.lo -? mimedir/mimedir-datetime.lo -? mimedir/mimedir-init.lo -? mimedir/mimedir-marshal.lo -? mimedir/mimedir-period.lo -? mimedir/mimedir-profile.lo -? mimedir/mimedir-recurrence.lo -? mimedir/mimedir-utils.lo -? mimedir/mimedir-valarm.lo -? mimedir/mimedir-vcal.lo -? mimedir/mimedir-vcard-address.lo -? mimedir/mimedir-vcard-email.lo -? mimedir/mimedir-vcard-phone.lo -? mimedir/mimedir-vcard.lo -? mimedir/mimedir-vcomponent.lo -? mimedir/mimedir-vevent.lo -? mimedir/mimedir-vfreebusy.lo -? mimedir/mimedir-vjournal.lo -? mimedir/mimedir-vtimezone.lo -? mimedir/mimedir-vtodo.lo -Index: mimedir/mimedir-vcomponent.c -=================================================================== -RCS file: /cvs/gnome/libmimedir/mimedir/mimedir-vcomponent.c,v -retrieving revision 1.28 -diff -B -b -u -r1.28 mimedir-vcomponent.c ---- mimedir/mimedir-vcomponent.c 26 Nov 2005 15:40:20 -0000 1.28 -+++ mimedir/mimedir-vcomponent.c 7 Aug 2006 12:20:01 -0000 -@@ -456,7 +456,7 @@ - _("Sequence"), - _("Sequence number"), - 0, G_MAXINT, 0, -- G_PARAM_READABLE); -+ G_PARAM_READWRITE); - g_object_class_install_property (gobject_class, PROP_SEQ, pspec); - } - -@@ -684,6 +684,9 @@ - g_object_ref (G_OBJECT (priv->last_modified)); - break; - } -+ case PROP_SEQ: -+ priv->sequence = g_value_get_uint (value); -+ break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); diff --git a/recipes/obsolete/libmimedir/files/gslist-fix.patch b/recipes/obsolete/libmimedir/files/gslist-fix.patch new file mode 100644 index 0000000000..ef28ecdc53 --- /dev/null +++ b/recipes/obsolete/libmimedir/files/gslist-fix.patch @@ -0,0 +1,11 @@ +--- /tmp/mimedir-attribute.c 2006-08-12 19:55:04.000000000 +0200 ++++ libmimedir/mimedir/mimedir-attribute.c 2006-08-12 19:55:49.938306000 +0200 +@@ -1768,7 +1768,7 @@ + } + break; + case ',': +- g_slist_append (list, g_string_free (string, FALSE)); ++ list = g_slist_append (list, g_string_free (string, FALSE)); + string = g_string_new (""); + break; + case '\r': diff --git a/recipes/obsolete/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch b/recipes/obsolete/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch new file mode 100644 index 0000000000..10843182e9 --- /dev/null +++ b/recipes/obsolete/libmimedir/files/libmimedir-0.4.0-duration-wkst.patch @@ -0,0 +1,258 @@ +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; + } + diff --git a/recipes/obsolete/libmimedir/files/mimedir-update.patch b/recipes/obsolete/libmimedir/files/mimedir-update.patch new file mode 100644 index 0000000000..f3be39eb53 --- /dev/null +++ b/recipes/obsolete/libmimedir/files/mimedir-update.patch @@ -0,0 +1,403 @@ +diff -Nur libmimedir_orig/Makefile.am libmimedir/Makefile.am +--- libmimedir_orig/Makefile.am 2002-08-15 15:36:01.000000000 +0200 ++++ libmimedir/Makefile.am 2006-08-04 15:51:06.000000000 +0200 +@@ -5,7 +5,22 @@ + mimedir-1.0.pc.in \ + intltool-extract.in \ + intltool-merge.in \ +- intltool-update.in ++ intltool-update.in \ ++ debian/changelog \ ++ debian/copyright \ ++ debian/control \ ++ debian/compat \ ++ debian/rules \ ++ debian/libmimedir0.files \ ++ debian/libmimedir-dev.files ++ + + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = mimedir-1.0.pc ++ ++deb: dist ++ -mkdir $(top_builddir)/debian-build ++ cd $(top_builddir)/debian-build && tar zxf ../$(top_builddir)/$(PACKAGE)-$(VERSION).tar.gz ++ cd $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) && dpkg-buildpackage -S -D -rfakeroot ++ cd $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) && dpkg-buildpackage -D -rfakeroot ++ -rm -rf $(top_builddir)/debian-build/$(PACKAGE)-$(VERSION) +diff -Nur libmimedir_orig/configure.in libmimedir/configure.in +--- libmimedir_orig/configure.in 2006-02-09 13:30:13.000000000 +0100 ++++ libmimedir/configure.in 2006-08-04 15:51:06.000000000 +0200 +@@ -3,7 +3,7 @@ + AC_INIT(MIME Directory Library, 0.4.0, mailto:srittau@jroger.in-berlin.de, libmimedir) + AC_PREREQ(2.53) + AC_CONFIG_SRCDIR(mimedir/mimedir-attribute.c) +-AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) ++AM_INIT_AUTOMAKE(libmimedir, AC_PACKAGE_VERSION) + AC_PROG_INTLTOOL + AM_CONFIG_HEADER(config.h) + +diff -Nur libmimedir_orig/mimedir/Makefile.am libmimedir/mimedir/Makefile.am +--- libmimedir_orig/mimedir/Makefile.am 2002-12-19 16:21:27.000000000 +0100 ++++ libmimedir/mimedir/Makefile.am 2006-08-04 15:56:36.000000000 +0200 +@@ -26,6 +26,7 @@ + mimedir-period.c \ + mimedir-profile.c \ + mimedir-recurrence.c \ ++ mimedir-recurrence-rule.c \ + mimedir-utils.c \ + mimedir-utils.h \ + mimedir-valarm.c \ +@@ -52,6 +53,7 @@ + mimedir-period.h \ + mimedir-profile.h \ + mimedir-recurrence.h \ ++ mimedir-recurrence-rule.h \ + mimedir-valarm.h \ + mimedir-vcal.h \ + mimedir-vcard.h \ +diff -Nur libmimedir_orig/mimedir/mimedir-attribute.c libmimedir/mimedir/mimedir-attribute.c +--- libmimedir_orig/mimedir/mimedir-attribute.c 2006-01-01 04:38:29.000000000 +0100 ++++ libmimedir/mimedir/mimedir-attribute.c 2006-08-04 15:51:06.000000000 +0200 +@@ -1417,7 +1417,7 @@ + g_return_val_if_fail (parameter != NULL, FALSE); + + p = mimedir_attribute_get_parameter (attribute, parameter); +- if (p) ++ if (p && p->values) + return (gchar *) p->values->data; + else + return NULL; +diff -Nur libmimedir_orig/mimedir/mimedir-recurrence-rule.c libmimedir/mimedir/mimedir-recurrence-rule.c +--- libmimedir_orig/mimedir/mimedir-recurrence-rule.c 1970-01-01 01:00:00.000000000 +0100 ++++ libmimedir/mimedir/mimedir-recurrence-rule.c 2006-08-04 15:52:39.000000000 +0200 +@@ -0,0 +1,171 @@ ++/* RFC 2445 iCal Recurrence Rule Object ++ * Copyright (C) 2004 Phil Blundell ++ * ++ * $Id: mimedir-recurrence.h,v 1.1 2002/08/28 04:57:12 srittau Exp $ ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include "mimedir-recurrence-rule.h" ++ ++ ++#ifndef _ ++#define _(x) (dgettext(GETTEXT_PACKAGE, (x))) ++#endif ++ ++ ++static void mimedir_recurrence_rule_class_init (MIMEDirRecurrenceRuleClass *klass); ++static void mimedir_recurrence_rule_init (MIMEDirRecurrenceRule *recurrence); ++static void mimedir_recurrence_rule_dispose (GObject *object); ++ ++ ++struct _MIMEDirRecurrenceRulePriv { ++ MIMEDirRecurrenceFrequency frequency; ++ int interval; ++}; ++ ++static GObjectClass *parent_class = NULL; ++ ++/* ++ * Class and Object Management ++ */ ++ ++GType ++mimedir_recurrence_rule_get_type (void) ++{ ++ static GType mimedir_recurrence_rule_type = 0; ++ ++ if (!mimedir_recurrence_rule_type) { ++ static const GTypeInfo mimedir_recurrence_rule_info = { ++ sizeof (MIMEDirRecurrenceRuleClass), ++ NULL, /* base_init */ ++ NULL, /* base_finalize */ ++ (GClassInitFunc) mimedir_recurrence_rule_class_init, ++ NULL, /* class_finalize */ ++ NULL, /* class_data */ ++ sizeof (MIMEDirRecurrenceRule), ++ 1, /* n_preallocs */ ++ (GInstanceInitFunc) mimedir_recurrence_rule_init, ++ }; ++ ++ mimedir_recurrence_rule_type = g_type_register_static (G_TYPE_OBJECT, ++ "MIMEDirRecurrenceRule", ++ &mimedir_recurrence_rule_info, ++ 0); ++ } ++ ++ return mimedir_recurrence_rule_type; ++} ++ ++ ++static void ++mimedir_recurrence_rule_class_init (MIMEDirRecurrenceRuleClass *klass) ++{ ++ GObjectClass *gobject_class; ++ ++ g_return_if_fail (klass != NULL); ++ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE_CLASS (klass)); ++ ++ gobject_class = G_OBJECT_CLASS (klass); ++ ++ gobject_class->dispose = mimedir_recurrence_rule_dispose; ++ ++ parent_class = g_type_class_peek_parent (klass); ++} ++ ++ ++static void ++mimedir_recurrence_rule_init (MIMEDirRecurrenceRule *rule) ++{ ++ MIMEDirRecurrenceRulePriv *priv; ++ ++ g_return_if_fail (rule != NULL); ++ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule)); ++ ++ priv = g_new0 (MIMEDirRecurrenceRulePriv, 1); ++ rule->priv = priv; ++} ++ ++ ++static void ++mimedir_recurrence_rule_dispose (GObject *object) ++{ ++ MIMEDirRecurrenceRule *rule; ++ ++ g_return_if_fail (object != NULL); ++ g_return_if_fail (MIMEDIR_IS_RECURRENCE_RULE (object)); ++ ++ rule = MIMEDIR_RECURRENCE_RULE (object); ++ ++ g_free (rule->priv); ++ rule->priv = NULL; ++ ++ G_OBJECT_CLASS (parent_class)->dispose (object); ++} ++ ++/* ++ * Public Methods ++ */ ++ ++/** ++ * mimedir_recurrence_rule_new: ++ * ++ * Creates a new iCal recurrence object. ++ * ++ * Return value: a new recurrence object ++ **/ ++MIMEDirRecurrenceRule * ++mimedir_recurrence_rule_new (void) ++{ ++ MIMEDirRecurrenceRule *rule; ++ ++ rule = g_object_new (MIMEDIR_TYPE_RECURRENCE_RULE, NULL); ++ ++ return rule; ++} ++ ++/** ++ * mimedir_recurrence_rule_get_frequency: ++ * ++ * Retrieves the base frequency for the corresponding recurrence object. ++ * ++ * Return value: a #MIMEDirRecurrenceFrequency ++ **/ ++MIMEDirRecurrenceFrequency ++mimedir_recurrence_rule_get_frequency (MIMEDirRecurrenceRule *rule) ++{ ++ g_return_val_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule), 0); ++ ++ return rule->priv->frequency; ++} ++ ++/** ++ * mimedir_recurrence_rule_get_interval: ++ * ++ * Retrieves the interval for the corresponding recurrence object. ++ * ++ * Return value: an #int ++ **/ ++int ++mimedir_recurrence_rule_get_interval (MIMEDirRecurrenceRule *rule) ++{ ++ g_return_val_if_fail (MIMEDIR_IS_RECURRENCE_RULE (rule), 0); ++ ++ return rule->priv->interval; ++} +diff -Nur libmimedir_orig/mimedir/mimedir-recurrence-rule.h libmimedir/mimedir/mimedir-recurrence-rule.h +--- libmimedir_orig/mimedir/mimedir-recurrence-rule.h 1970-01-01 01:00:00.000000000 +0100 ++++ libmimedir/mimedir/mimedir-recurrence-rule.h 2006-08-04 15:52:39.000000000 +0200 +@@ -0,0 +1,74 @@ ++/* RFC 2445 iCal Recurrence Rule Object ++ * Copyright (C) 2004 Phil Blundell ++ * ++ * $Id: mimedir-recurrence.h,v 1.1 2002/08/28 04:57:12 srittau Exp $ ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#ifndef __MIMEDIR_RECURRENCE_RULE_H__ ++#define __MIMEDIR_RECURRENCE_RULE_H__ ++ ++#include ++#include ++ ++#include "mimedir/mimedir-datetime.h" ++ ++#define MIMEDIR_TYPE_RECURRENCE_RULE (mimedir_recurrence_get_type()) ++#define MIMEDIR_RECURRENCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIMEDIR_TYPE_RECURRENCE_RULE, MIMEDirRecurrenceRule)) ++#define MIMEDIR_RECURRENCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MIMEDIR_TYPE_RECURRENCE_RULE, MIMEDirRecurrenceRuleClass)) ++#define MIMEDIR_IS_RECURRENCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIMEDIR_TYPE_RECURRENCE_RULE)) ++#define MIMEDIR_IS_RECURRENCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MIMEDIR_TYPE_RECURRENCE_RULE)) ++ ++typedef struct _MIMEDirRecurrenceRule MIMEDirRecurrenceRule; ++typedef struct _MIMEDirRecurrenceRulePriv MIMEDirRecurrenceRulePriv; ++typedef struct _MIMEDirRecurrenceRuleClass MIMEDirRecurrenceRuleClass; ++ ++typedef enum { ++ MIMEDIR_RECURRENCE_RULE_SECONDLY, ++ MIMEDIR_RECURRENCE_RULE_MINUTELY, ++ MIMEDIR_RECURRENCE_RULE_HOURLY, ++ MIMEDIR_RECURRENCE_RULE_DAILY, ++ MIMEDIR_RECURRENCE_RULE_WEEKLY, ++ MIMEDIR_RECURRENCE_RULE_MONTHLY, ++ MIMEDIR_RECURRENCE_RULE_YEARLY, ++} MIMEDirRecurrenceFrequency; ++ ++struct _MIMEDirRecurrenceRule ++{ ++ GObject parent; ++ ++ MIMEDirRecurrenceRulePriv *priv; ++}; ++ ++struct _MIMEDirRecurrenceRuleClass ++{ ++ GObjectClass parent_class; ++}; ++ ++MIMEDirRecurrenceFrequency mimedir_recurrence_rule_get_frequency (MIMEDirRecurrenceRule *); ++int mimedir_recurrence_rule_get_interval (MIMEDirRecurrenceRule *); ++int mimedir_recurrence_rule_get_count (MIMEDirRecurrenceRule *); ++MIMEDirDateTime *mimedir_recurrence_rule_get_end_date (MIMEDirRecurrenceRule *); ++ ++void mimedir_recurrence_rule_set (MIMEDirRecurrenceRule *, ++ MIMEDirRecurrenceFrequency freq, ++ int interval); ++ ++GType mimedir_recurrence_rule_get_type (void); ++MIMEDirRecurrenceRule *mimedir_recurrence_rule_new (void); ++ ++#endif ++ +diff -Nur libmimedir_orig/mimedir/mimedir-vcomponent.c libmimedir/mimedir/mimedir-vcomponent.c +--- libmimedir_orig/mimedir/mimedir-vcomponent.c 2005-11-26 16:40:20.000000000 +0100 ++++ libmimedir/mimedir/mimedir-vcomponent.c 2006-08-04 15:51:06.000000000 +0200 +@@ -951,52 +951,33 @@ + + s++; + +- num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); +- if (err) { +- g_propagate_error (error, err); +- return 0; +- } +- if (s[0] != 'H') { +- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); +- return 0; +- } +- s++; +- duration += num * SECS_PER_HOUR; +- +- if (s[0]) { ++ while (s[0] != '\0') { + num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); + if (err) { + g_propagate_error (error, err); + return 0; + } +- if (s[0] != 'M') { +- g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); +- return 0; +- } +- s++; +- duration += num * SECS_PER_MINUTE; +- } + +- if (s[0]) { +- num = mimedir_vcomponent_parse_number (name, "DURATION", &s, &err); +- if (err) { +- g_propagate_error (error, err); +- return 0; +- } +- if (s[0] != 'S') { ++ switch (s[0]) { ++ case 'H': ++ s++; ++ duration += num * SECS_PER_HOUR; ++ break; ++ case 'M': ++ s++; ++ duration += num * SECS_PER_MINUTE; ++ break; ++ case 'S': ++ s++; ++ duration += num; ++ break; ++ default: + g_set_error (error, MIMEDIR_ATTRIBUTE_ERROR, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT, MIMEDIR_ATTRIBUTE_ERROR_INVALID_FORMAT_STR, "DURATION", name); + return 0; + } +- s++; +- duration += num; + } + } + +- 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; + } + +@@ -2996,7 +2977,7 @@ + g_free (priv->location); + g_free (priv->location_alt); + priv->location = g_strdup (location); +- priv->location_alt = g_strdup (uri); ++ priv->location_alt = uri ? g_strdup (uri) : NULL; + } + + /** diff --git a/recipes/obsolete/libmimedir/files/mimedir-write-sequence.patch b/recipes/obsolete/libmimedir/files/mimedir-write-sequence.patch new file mode 100644 index 0000000000..b03c5d9ca7 --- /dev/null +++ b/recipes/obsolete/libmimedir/files/mimedir-write-sequence.patch @@ -0,0 +1,51 @@ +? mimedir/.deps +? mimedir/.libs +? mimedir/libmimedir.la +? mimedir/mimedir-attachment.lo +? mimedir/mimedir-attendee.lo +? mimedir/mimedir-attribute.lo +? mimedir/mimedir-datetime.lo +? mimedir/mimedir-init.lo +? mimedir/mimedir-marshal.lo +? mimedir/mimedir-period.lo +? mimedir/mimedir-profile.lo +? mimedir/mimedir-recurrence.lo +? mimedir/mimedir-utils.lo +? mimedir/mimedir-valarm.lo +? mimedir/mimedir-vcal.lo +? mimedir/mimedir-vcard-address.lo +? mimedir/mimedir-vcard-email.lo +? mimedir/mimedir-vcard-phone.lo +? mimedir/mimedir-vcard.lo +? mimedir/mimedir-vcomponent.lo +? mimedir/mimedir-vevent.lo +? mimedir/mimedir-vfreebusy.lo +? mimedir/mimedir-vjournal.lo +? mimedir/mimedir-vtimezone.lo +? mimedir/mimedir-vtodo.lo +Index: mimedir/mimedir-vcomponent.c +=================================================================== +RCS file: /cvs/gnome/libmimedir/mimedir/mimedir-vcomponent.c,v +retrieving revision 1.28 +diff -B -b -u -r1.28 mimedir-vcomponent.c +--- mimedir/mimedir-vcomponent.c 26 Nov 2005 15:40:20 -0000 1.28 ++++ mimedir/mimedir-vcomponent.c 7 Aug 2006 12:20:01 -0000 +@@ -456,7 +456,7 @@ + _("Sequence"), + _("Sequence number"), + 0, G_MAXINT, 0, +- G_PARAM_READABLE); ++ G_PARAM_READWRITE); + g_object_class_install_property (gobject_class, PROP_SEQ, pspec); + } + +@@ -684,6 +684,9 @@ + g_object_ref (G_OBJECT (priv->last_modified)); + break; + } ++ case PROP_SEQ: ++ priv->sequence = g_value_get_uint (value); ++ break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -- cgit v1.2.3