aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog5
-rw-r--r--calendar/cal-util/cal-recur.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 7a7238162c..2fe5e36a1b 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-06 Damon Chaplin <damon@ximian.com>
+
+ * cal-util/cal-recur.c (cal_recur_from_icalproperty): convert months
+ from 1-12 to 0-11. Fixes bug #19235.
+
2002-02-04 JP Rosevear <jpr@ximian.com>
* conduits/todo/todo-conduit.c (e_todo_gui_new): new gui routines
diff --git a/calendar/cal-util/cal-recur.c b/calendar/cal-util/cal-recur.c
index cfccdaf19f..e050004031 100644
--- a/calendar/cal-util/cal-recur.c
+++ b/calendar/cal-util/cal-recur.c
@@ -904,6 +904,7 @@ cal_recur_from_icalproperty (icalproperty *prop, gboolean exception,
struct icalrecurrencetype ir;
CalRecurrence *r;
gint max_elements, i;
+ GList *elem;
g_return_val_if_fail (prop != NULL, NULL);
@@ -956,6 +957,11 @@ cal_recur_from_icalproperty (icalproperty *prop, gboolean exception,
r->bymonth = array_to_list (ir.by_month,
sizeof (ir.by_month) / sizeof (ir.by_month[0]));
+ for (elem = r->bymonth; elem; elem = elem->next) {
+ /* We need to convert from 1-12 to 0-11, i.e. subtract 1. */
+ int month = GPOINTER_TO_INT (elem->data) - 1;
+ elem->data = GINT_TO_POINTER (month);
+ }
r->byweekno = array_to_list (ir.by_week_no,
sizeof (ir.by_week_no) / sizeof (ir.by_week_no[0]));