aboutsummaryrefslogtreecommitdiff
path: root/misc/libmcal/files
diff options
context:
space:
mode:
authorEdwin Groothuis <edwin@FreeBSD.org>2003-02-04 05:17:34 +0000
committerEdwin Groothuis <edwin@FreeBSD.org>2003-02-04 05:17:34 +0000
commit80fc392c0907bdbc2b0dc3e58797a6a3c66804e1 (patch)
treeb5268ad9d665bddd7e2758d436d8da5afe39c445 /misc/libmcal/files
parentaf420be82bff27cffa084f6833a4cbfb2e94e898 (diff)
downloadports-80fc392c0907bdbc2b0dc3e58797a6a3c66804e1.tar.gz
ports-80fc392c0907bdbc2b0dc3e58797a6a3c66804e1.zip
Notes
Diffstat (limited to 'misc/libmcal/files')
-rw-r--r--misc/libmcal/files/patch-ad17
-rw-r--r--misc/libmcal/files/patch-ae73
-rw-r--r--misc/libmcal/files/patch-af65
-rw-r--r--misc/libmcal/files/patch-ag121
-rw-r--r--misc/libmcal/files/patch-ah25
-rw-r--r--misc/libmcal/files/patch-ai88
-rw-r--r--misc/libmcal/files/patch-aj193
-rw-r--r--misc/libmcal/files/patch-ak106
-rw-r--r--misc/libmcal/files/patch-al587
9 files changed, 0 insertions, 1275 deletions
diff --git a/misc/libmcal/files/patch-ad b/misc/libmcal/files/patch-ad
deleted file mode 100644
index 5ece66b2d1e6..000000000000
--- a/misc/libmcal/files/patch-ad
+++ /dev/null
@@ -1,17 +0,0 @@
---- bool.h.orig Thu Dec 2 09:01:39 1999
-+++ bool.h Wed Jun 28 00:17:14 2000
-@@ -1,4 +1,4 @@
--/* $Id: bool.h,v 1.1.1.1 1999/12/02 08:01:39 zircote Exp $
-+/* $Id: bool.h,v 1.2 2000/06/27 22:17:14 askalski Exp $
- *
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
-@@ -32,7 +32,7 @@
- #ifndef _BOOL_H
- #define _BOOL_H
-
--#ifndef __cplusplus__
-+#ifndef __cplusplus
- typedef enum { false, true } bool;
- #endif
-
diff --git a/misc/libmcal/files/patch-ae b/misc/libmcal/files/patch-ae
deleted file mode 100644
index c9b5de5b647e..000000000000
--- a/misc/libmcal/files/patch-ae
+++ /dev/null
@@ -1,73 +0,0 @@
---- datetime.c.orig Sat Mar 11 03:14:42 2000
-+++ datetime.c Thu May 11 21:43:23 2000
-@@ -1,5 +1,5 @@
- /*
-- * $Id: datetime.c,v 1.2 2000/03/11 02:14:42 chuck Exp $
-+ * $Id: datetime.c,v 1.3 2000/05/11 19:43:23 inan Exp $
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
- *
-@@ -280,8 +280,37 @@
- {
- return dt_dayofepoch(dt) % 7;
- }
--
--
-+/*
-+char*
-+dt_dayofweekstr(const datetime_t *dt)
-+{
-+ char output[3];
-+ switch (dt_dayofepoch(dt) % 7) {
-+ case 0:
-+ strcpy (output, "SU");
-+ break;
-+ case 1:
-+ strcpy (output, "MO");
-+ break;
-+ case 2:
-+ strcpy (output, "TU");
-+ break;
-+ case 3:
-+ strcpy (output, "WE");
-+ break;
-+ case 4:
-+ strcpy (output, "TH");
-+ break;
-+ case 5:
-+ strcpy (output, "FR");
-+ break;
-+ case 6:
-+ strcpy (output, "SA");
-+ break;
-+ }
-+ return output;
-+}
-+*/
- int
- dt_dayofepoch(const datetime_t *dt)
- {
-@@ -460,3 +489,23 @@
- }
- return w;
- }
-+
-+int
-+dt_orderofmonth( const datetime_t *dt, const direction_t direction)
-+{
-+ datetime_t temp_dt = DT_INIT;
-+ int temp_int;
-+
-+ switch (direction) {
-+ case DT_FORWARD:
-+ dt_setnthwday(&temp_dt, dt->year, dt->mon, 1, dt_dayofweek(dt) );
-+ temp_int = (dt->mday - temp_dt.mday)/7;
-+ temp_int ++; //start count at 1, not zero
-+ break;
-+ case DT_BACKWARD:
-+ // not built
-+ return false;
-+ }
-+ return temp_int;
-+}
-+
diff --git a/misc/libmcal/files/patch-af b/misc/libmcal/files/patch-af
deleted file mode 100644
index 6fab309d4a87..000000000000
--- a/misc/libmcal/files/patch-af
+++ /dev/null
@@ -1,65 +0,0 @@
---- datetime.h.orig Sat Mar 11 03:14:43 2000
-+++ datetime.h Fri Mar 16 20:27:14 2001
-@@ -1,5 +1,5 @@
- /*
-- * $Id: datetime.h,v 1.2 2000/03/11 02:14:43 chuck Exp $
-+ * $Id: datetime.h,v 1.4 2001/03/16 19:27:14 chuck Exp $
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
- *
-@@ -26,7 +26,7 @@
- * Andrew Skalski
- * askalski@chek.com
- *
-- * mcal@lists.chek.com
-+ * libmcal-users@lists.sourceforge.net
- */
-
- #ifndef _DATETIME_H
-@@ -66,6 +66,11 @@
- DECEMBER
- } month_t;
-
-+typedef enum {
-+ DT_FORWARD,
-+ DT_BACKWARD
-+} direction_t;
-+
- /**
- * struct datetime
- *
-@@ -178,11 +183,34 @@
- /* Returns the week number for d=day, m=month, y=year */
- int dt_weekofyear(int d, int m, int y);
-
-+/* Returns the week number in the given month counting in the given direction */
-+int dt_orderofmonth( const datetime_t *dt, const direction_t direction);
-+
- /* convenience macros to get the first/last days of a week */
- #define dt_startofweek(dt, ref, weekstart) \
- dt_setweekof((dt), (ref), (weekstart), (weekstart))
- #define dt_endofweek(dt, ref, weekstart) \
- dt_setweekof((dt), (ref), (weekstart), (7+(weekstart)-1)%7)
-+#define dt_dayofweekstr(dayno) \
-+ (dayno) >= 4 ? \
-+ (dayno) = 6 ? \
-+ "SA" : \
-+ (dayno) = 5 ? \
-+ "FR" : \
-+ "TH" \
-+ ; \
-+ ;: \
-+ (dayno) >= 2 ? \
-+ (dayno) = 3 ? \
-+ "WE" : \
-+ "TU" \
-+ ;: \
-+ (dayno) = 1 ? \
-+ "MO" : \
-+ "SU" \
-+ ; \
-+ ; \
-+
-
- /**********************************/
-
diff --git a/misc/libmcal/files/patch-ag b/misc/libmcal/files/patch-ag
deleted file mode 100644
index f73288c5191c..000000000000
--- a/misc/libmcal/files/patch-ag
+++ /dev/null
@@ -1,121 +0,0 @@
---- icalroutines.c.orig Tue Jan 25 04:08:10 2000
-+++ icalroutines.c Sun Jan 20 13:21:22 2002
-@@ -1,5 +1,5 @@
- /*
-- * #$Id: icalroutines.c,v 1.1 2000/01/25 03:08:10 markie Exp $
-+ * #$Id: icalroutines.c,v 1.3 2001/12/10 03:16:41 chuck Exp $
- *
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
-@@ -593,4 +593,111 @@
- }
- putc(pad, out);
- }
-+}
-+
-+#define MAX(a,b) (a)>(b) ? (a) :(b)
-+void
-+ical_set_byday ( char *output, const byday_t *input ) {
-+ int i;
-+ char temp_string[50];
-+
-+ strcpy (output, "");
-+
-+ for (i=0; i<=6; i++) {
-+ /* wdays is a bit field corresponding to days of the week */
-+ if ((input->weekdays) & (0x1 <<i) ) {
-+ if (input->ordwk[i] != 0) {
-+ sprintf( temp_string, "%d", input->ordwk[i] );
-+ strcat ( output, temp_string );
-+ }
-+ switch (i) {
-+ case 0:
-+ strcat ( output, "SU, ");
-+ break;
-+ case 1:
-+ strcat ( output, "MO, ");
-+ break;
-+ case 2:
-+ strcat ( output, "TU, ");
-+ break;
-+ case 3:
-+ strcat ( output, "WE, ");
-+ break;
-+ case 4:
-+ strcat ( output, "TH, ");
-+ break;
-+ case 5:
-+ strcat ( output, "FR, ");
-+ break;
-+ case 6:
-+ strcat ( output, "SA, ");
-+ break;
-+ }
-+ }
-+ }
-+ output[MAX(strlen(output)-2,0)] = '\0';
-+
-+}
-+#undef MAX
-+
-+void
-+ical_get_byday ( byday_t *output, const char *input ) {
-+ char *temp_string;
-+ char *token;
-+ char *day_start;
-+ int interval;
-+ int day_index;
-+ temp_string = strdup(input);
-+
-+ token = strtok (temp_string, ",");
-+ while ( token != NULL ) {
-+ day_start = token + strlen(token) - 2;
-+ if (strcasecmp (day_start, "SU")==0) {
-+ output->weekdays |= M_SUNDAY;
-+ day_index = 0;
-+ } else if (strcasecmp (day_start, "MO")==0) {
-+ output->weekdays |= M_MONDAY;
-+ day_index = 1;
-+ } else if (strcasecmp (day_start, "TU")==0) {
-+ output->weekdays |= M_TUESDAY;
-+ day_index = 2;
-+ } else if (strcasecmp (day_start, "WE")==0) {
-+ output->weekdays |= M_WEDNESDAY;
-+ day_index = 3;
-+ } else if (strcasecmp (day_start, "TH")==0) {
-+ output->weekdays |= M_THURSDAY;
-+ day_index = 4;
-+ } else if (strcasecmp (day_start, "FR")==0) {
-+ output->weekdays |= M_FRIDAY;
-+ day_index = 5;
-+ } else if (strcasecmp (day_start, "SA")==0) {
-+ output->weekdays |= M_SATURDAY;
-+ day_index = 6;
-+ }
-+ *day_start = '\0';
-+ interval = atoi (token);
-+ output->ordwk[day_index] = interval;
-+ }
-+
-+ free( token );
-+ free( temp_string );
-+}
-+
-+void
-+ical_get_recur_freq( recur_t *output, const char *input, const char *byday) {
-+ if (strncmp (input, "D",1)==0) {
-+ *output = RECUR_DAILY;
-+ } else if (strncmp (input, "W",1)==0) {
-+ *output = RECUR_WEEKLY;
-+ } else if (strncmp (input, "M",1)==0) {
-+ if (strlen(byday) == 0) {
-+ *output = RECUR_MONTHLY_MDAY;
-+ } else {
-+ *output = RECUR_MONTHLY_WDAY;
-+ }
-+ } else if (strncmp (input, "Y",1)==0) {
-+ *output = RECUR_YEARLY;
-+ } else {
-+ *output = RECUR_NONE;
-+ }
- }
diff --git a/misc/libmcal/files/patch-ah b/misc/libmcal/files/patch-ah
deleted file mode 100644
index ef9e8eb686c9..000000000000
--- a/misc/libmcal/files/patch-ah
+++ /dev/null
@@ -1,25 +0,0 @@
---- icalroutines.h.orig Tue Jan 25 04:08:10 2000
-+++ icalroutines.h Thu May 11 21:43:23 2000
-@@ -1,5 +1,5 @@
- /*
-- * #$Id: icalroutines.h,v 1.1 2000/01/25 03:08:10 markie Exp $
-+ * #$Id: icalroutines.h,v 1.2 2000/05/11 19:43:23 inan Exp $
- *
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
-@@ -70,5 +70,15 @@
- const unsigned char *buf,
- size_t size);
-
-+/* ICAL formatting. */
-+#define BYDAY_INIT {0, {0,0,0,0,0,0,0}}
-+typedef struct {
-+ unsigned int weekdays;
-+ int ordwk[7];
-+} byday_t;
-+
-+void ical_set_byday(char *output, const byday_t *input);
-+void ical_get_byday(byday_t *output, const char *input);
-+void ical_get_recur_freq( recur_t *output, const char *input, const char *byday);
-
- #endif
diff --git a/misc/libmcal/files/patch-ai b/misc/libmcal/files/patch-ai
deleted file mode 100644
index c1d91d33bdcb..000000000000
--- a/misc/libmcal/files/patch-ai
+++ /dev/null
@@ -1,88 +0,0 @@
---- icap/icap.c.orig Mon Mar 27 06:12:33 2000
-+++ icap/icap.c Fri Jul 7 17:16:18 2000
-@@ -2,7 +2,7 @@
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
- *
-- * #$Id: icap.c,v 1.1.1.1 1999/12/02 08:02:27 zircote Exp $
-+ * #$Id: icap.c,v 1.4 2000/07/07 15:16:18 markie Exp $
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
-@@ -36,7 +36,7 @@
- #include "icaproutines.h"
-
-
--#define ICAP_VAR "0.3"
-+#define ICAP_VAR "0.2"
- /** ICAP Driver **/
- #define DATA_T struct icap_data
- #define DATA ((DATA_T*) stream->data)
-@@ -49,6 +49,7 @@
- const CALADDR *addr, long options);
- static CALSTREAM* icap_close(CALSTREAM *stream, long options);
- static bool icap_ping(CALSTREAM *stream);
-+static bool icap_create(CALSTREAM *stream, const char *calendar);
- static bool icap_search_range( CALSTREAM *stream,
- const datetime_t *start,
- const datetime_t *end);
-@@ -72,6 +73,7 @@
- icap_open,
- icap_close,
- icap_ping,
-+ icap_create,
- icap_search_range,
- icap_search_alarm,
- icap_fetch,
-@@ -243,6 +245,13 @@
-
-
- bool
-+icap_create(CALSTREAM *stream, const char *calendar)
-+{
-+ return false;
-+}
-+
-+
-+bool
- icap_search_range( CALSTREAM *stream,
- const datetime_t *start,
- const datetime_t *end)
-@@ -258,12 +267,12 @@
-
- endq = query;
- if (start && dt_hasdate(start)) {
-- endq += sprintf(endq, " ICAL DTSTART>=%04u%02u%02u",
-- start->year, start->mon, start->mday);
-+ endq += sprintf(endq, " ICAL DTSTART > %04u%02u%02u",
-+ start->year, start->mon, start->mday-1);
- }
- if (end && dt_hasdate(end)) {
-- endq += sprintf(endq, " ICAL DTSTART<=%04u%02u%02u",
-- end->year, end->mon, end->mday);
-+ endq += sprintf(endq, " ICAL DTSTART < %04u%02u%02u",
-+ end->year, end->mon, end->mday+1);
- }
- if (endq == query)
- strcpy(query, " ALL");
-@@ -288,7 +297,7 @@
- if (dt_empty(when))
- return false;
-
-- sprintf(query, "UID SEARCH ALARMING %04u%02u%02uT%02u%02u%02uZ",
-+ sprintf(query, "UID SEARCH COMPONENT VALARM ICAL DTSTART = %04u%02u%02uT%02u%02u%02uZ",
- when->year, when->mon, when->mday,
- when->hour, when->min, when->sec);
-
-@@ -373,9 +382,9 @@
- {
- char query[1024];
-
-- if (!icap_begin(DATA->net, "UID REMOVE "))
-+ if (!icap_begin(DATA->net, "UID STORE "))
- return false;
-- sprintf(query, "%lu", id);
-+ sprintf(query, "%lu +FLAGS \\Deleted", id);
- if (!icap_opaque(DATA->net, query))
- return false;
- if (icap_end(DATA->net) != ICAP_OK)
diff --git a/misc/libmcal/files/patch-aj b/misc/libmcal/files/patch-aj
deleted file mode 100644
index 6ecc29e8dbde..000000000000
--- a/misc/libmcal/files/patch-aj
+++ /dev/null
@@ -1,193 +0,0 @@
---- mcal.c.orig Sun Feb 27 06:01:54 2000
-+++ mcal.c Sun Jan 20 13:13:15 2002
-@@ -1,5 +1,5 @@
- /*
-- * $Id: mcal.c,v 1.6 2000/02/27 05:01:54 inan Exp $
-+ * $Id: mcal.c,v 1.10 2001/12/10 03:16:41 chuck Exp $
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
- *
-@@ -174,7 +174,7 @@
- /* size-count and sanity-check all fields */
- if (addr->host) {
- /* sanity: host contains neither '/' nor '}' */
-- if (strchr(addr->host, '}') || strchr(addr->host, '/'))
-+ if (strpbrk(addr->host, "}/"))
- return NULL;
- size += strlen(addr->host) + 2;
-
-@@ -318,10 +318,33 @@
- }
-
-
-+bool
-+calevent_valid(const CALEVENT *event)
-+{
-+ int n = 0;
-+
-+ /* both must have date field set */
-+ if (!dt_hasdate(&event->start) || !dt_hasdate(&event->end))
-+ return false;
-+
-+ /* either none or both may have time field set */
-+ if (dt_hastime(&event->start)) n++;
-+ if (dt_hastime(&event->end)) n++;
-+ if (n == 1)
-+ return false;
-+
-+ /* start must precede end */
-+ if (dt_compare(&event->start, &event->end) > 0)
-+ return false;
-+
-+ return true;
-+}
-+
-+
- const char*
--calevent_getattr(CALEVENT *event, const char *name)
-+calevent_getattr(const CALEVENT *event, const char *name)
- {
-- CALATTR *attr;
-+ const CALATTR *attr;
-
- for (attr = event->attrlist; attr; attr = attr->next)
- if (!strcasecmp(attr->name, name))
-@@ -694,7 +717,7 @@
- int wday;
-
-
-- nth = estart.mday / 7 + 1;
-+ nth = (estart.mday - 1) / 7 + 1;
- wday = dt_dayofweek(&estart);
-
- /* adjust estart to be the first candidate */
-@@ -750,6 +773,18 @@
- return false;
- }
-
-+bool
-+cal_create(CALSTREAM *stream,const char *calendar) {
-+ bool output;
-+
-+ if (stream == NULL) {
-+ output = false;
-+ } else {
-+ output = stream->driver->create(stream, calendar);
-+ }
-+
-+ return output;
-+}
-
- bool
- cal_valid(const char *address)
-@@ -880,6 +915,8 @@
- {
- if (stream == NULL || stream->dead)
- return false;
-+ if (!calevent_valid(event))
-+ return false;
- return stream->driver->append(stream, addr, id, event);
- }
-
-@@ -944,12 +981,31 @@
- return good;
- }
-
-+
-+bool
-+cal_delete(CALSTREAM *stream, char *calendar)
-+{
-+ if (stream == NULL || stream->dead)
-+ return false;
-+ return stream->driver->delete(stream, calendar);
-+}
-+
-+bool
-+cal_rename(CALSTREAM *stream, char *src,char *dest)
-+{
-+ if (stream == NULL || stream->dead)
-+ return false;
-+ return stream->driver->rename(stream, src,dest);
-+}
-+
-+
- /** Dummy Driver **/
- static bool dummy_valid(const CALADDR *addr);
- static CALSTREAM* dummy_open( CALSTREAM *stream,
- const CALADDR *addr, long options);
- static CALSTREAM* dummy_close(CALSTREAM *stream, long options);
- static bool dummy_ping(CALSTREAM *stream);
-+static bool dummy_create(CALSTREAM *stream, const char *calendar);
- static bool dummy_search_range( CALSTREAM *stream,
- const datetime_t *start,
- const datetime_t *end);
-@@ -966,6 +1022,13 @@
- unsigned long id);
- static bool dummy_snooze( CALSTREAM *stream,
- unsigned long id);
-+static bool dummy_store( CALSTREAM *stream,
-+ const CALEVENT *event);
-+static bool dummy_delete( CALSTREAM *stream,
-+ char *calendar);
-+
-+static bool dummy_rename( CALSTREAM *stream,
-+ char *src,char *dest);
-
- const CALDRIVER dummy_driver =
- {
-@@ -973,12 +1036,17 @@
- dummy_open,
- dummy_close,
- dummy_ping,
-+ dummy_create,
- dummy_search_range,
- dummy_search_alarm,
- dummy_fetch,
- dummy_append,
- dummy_remove,
- dummy_snooze,
-+ dummy_store,
-+ dummy_delete,
-+ dummy_rename,
-+
- };
-
-
-@@ -1011,6 +1079,12 @@
- return false;
- }
-
-+bool
-+dummy_create(CALSTREAM *stream, const char *calendar)
-+{
-+ return false;
-+}
-+
-
- bool
- dummy_search_range( CALSTREAM *stream,
-@@ -1052,6 +1126,24 @@
-
- bool
- dummy_snooze(CALSTREAM *stream, unsigned long id)
-+{
-+ return false;
-+}
-+
-+bool
-+dummy_store(CALSTREAM *stream, const CALEVENT *event)
-+{
-+ return false;
-+}
-+
-+bool
-+dummy_delete(CALSTREAM *stream, char *calendar)
-+{
-+ return false;
-+}
-+
-+bool
-+dummy_rename(CALSTREAM *stream, char *src,char *dest)
- {
- return false;
- }
diff --git a/misc/libmcal/files/patch-ak b/misc/libmcal/files/patch-ak
deleted file mode 100644
index 5c84c5ada01d..000000000000
--- a/misc/libmcal/files/patch-ak
+++ /dev/null
@@ -1,106 +0,0 @@
---- mcal.h.orig Mon Mar 27 06:00:33 2000
-+++ mcal.h Tue Jan 9 04:26:48 2001
-@@ -1,5 +1,6 @@
-+
- /*
-- * $Id: mcal.h,v 1.6 2000/03/27 04:00:33 zircote Exp $
-+ * $Id: mcal.h,v 1.10 2001/01/09 03:26:48 markie Exp $
- * Libmcal - Modular Calendar Access Library
- * Copyright (C) 1999 Mark Musone and Andrew Skalski
- *
-@@ -142,6 +143,15 @@
- size_t bufsize; /* buffer size */
- };
-
-+/* calendar stream struct */
-+CALSTREAM {
-+ const CALDRIVER *driver; /* stream driver */
-+ CALADDR *addr; /* folder address */
-+ bool dead; /* dead stream? */
-+ weekday_t startofweek; /* first day of week */
-+ void *data; /* driver-specific data */
-+};
-+
-
- /* calendar driver structure */
- CALDRIVER {
-@@ -169,7 +179,11 @@
-
- /* return true if the stream is still alive */
- bool (*ping)( CALSTREAM *stream);
--
-+
-+ /* return true if calendar created ok */
-+ bool (*create)( CALSTREAM *stream,
-+ const char *calendar);
-+
- /* search the current folder for events between <start> and
- * <end> (inclusive.) if either lacks a date or is NULL, that
- * bound will not be checked. if both lack a date or are NULL,
-@@ -222,20 +236,17 @@
- bool (*store)( CALSTREAM *stream,
- const CALEVENT *event);
-
-+ /* Delete an entire calendar */
-+ bool (*delete)( CALSTREAM *stream, char *calendar);
-
--};
-+ bool (*rename)( CALSTREAM *stream,char *src,char *dest);
-
-
--/* calendar stream struct */
--CALSTREAM {
-- const CALDRIVER *driver; /* stream driver */
-- CALADDR *addr; /* folder address */
-- bool dead; /* dead stream? */
-- weekday_t startofweek; /* first day of week */
-- void *data; /* driver-specific data */
- };
-
-
-+
-+
- /** calendar client callbacks **/
-
- /* Called when a stream driver requires a username/password. It is
-@@ -287,8 +298,11 @@
- /* Disposes of a CALEVENT, returns NULL for convenience. */
- CALEVENT* calevent_free(CALEVENT *event);
-
-+/* Check the validity of an event's fields. */
-+bool calevent_valid(const CALEVENT *event);
-+
- /* Routines to set and fetch event attributes. */
--const char* calevent_getattr(CALEVENT *event, const char *name);
-+const char* calevent_getattr(const CALEVENT *event, const char *name);
- bool calevent_setattr(CALEVENT *event, const char *name,
- const char *value);
-
-@@ -322,7 +336,10 @@
- */
- bool first_day_not_before( int mask, weekday_t *clamp,
- weekday_t weekstart);
--
-+/* Creates a new calendar
-+ */
-+bool cal_create(CALSTREAM *stream,const char *calendar);
-+
- /* Returns true if the address is valid for any of the calendar drivers */
- bool cal_valid(const char *address);
-
-@@ -400,6 +417,15 @@
- /* Cancels the alarm for event with id of <id>. Returns false on error. */
- bool cal_snooze( CALSTREAM *stream,
- unsigned long id);
-+
-+/* delete an entire calendar */
-+
-+bool cal_delete( CALSTREAM *stream,
-+ char *calendar);
-+
-+/* rename a calendar */
-+bool cal_rename( CALSTREAM *stream,
-+ char *src,char *dest);
-
-
- /* private functions */
diff --git a/misc/libmcal/files/patch-al b/misc/libmcal/files/patch-al
deleted file mode 100644
index 623708c88fbc..000000000000
--- a/misc/libmcal/files/patch-al
+++ /dev/null
@@ -1,587 +0,0 @@
---- mstore/mstore.c.orig Mon Mar 27 06:07:12 2000
-+++ mstore/mstore.c Sun Jan 20 13:36:14 2002
-@@ -1,31 +1,39 @@
--/* $Id: mstore.c,v 1.11 2000/03/27 04:07:12 zircote Exp $ */
-+/* $Id: mstore.c,v 1.22 2001/12/25 02:41:44 chuck Exp $ */
-
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
- #include <pwd.h>
-+#include <sys/time.h>
- #include <unistd.h>
- #include <crypt.h>
-+
-+#ifdef USE_PAM
-+#include <security/pam_appl.h>
-+#endif /* USE_PAM */
-+
- #include "mcal.h"
- #include "mstore.h"
- #include "icap/icaproutines.h"
-
--
- #define MSTORE_VER "0.5"
- #define DATA_T struct mstore_data
- #define DATA ((DATA_T*) stream->data)
-
--
-+/* mpasswd path define */
-+#ifndef MPASSWD_PATH
-+#define MPASSWD_PATH "/etc/mpasswd"
-+#endif
-
- static void mstore_freestream(CALSTREAM *stream);
- static bool mstore_validuser(const char *username,const char *password);
--static bool mstore_userexists(const char *username);
-
- static bool mstore_valid(const CALADDR *addr);
- static CALSTREAM* mstore_open( CALSTREAM *stream,
- const CALADDR *addr, long options);
- static CALSTREAM* mstore_close(CALSTREAM *stream, long options);
- static bool mstore_ping(CALSTREAM *stream);
-+static bool mstore_create (CALSTREAM *stream, const char *calendar);
- static bool mstore_search_range( CALSTREAM *stream,
- const datetime_t *start,
- const datetime_t *end);
-@@ -44,12 +52,18 @@
- unsigned long id);
- static bool mstore_store( CALSTREAM *stream,
- const CALEVENT *modified_event);
-+static bool mstore_delete( CALSTREAM *stream,
-+ char *calendar);
-+static bool mstore_rename( CALSTREAM *stream,
-+ char *src,char *dest);
-+
- CALDRIVER mstore_driver =
- {
- mstore_valid,
- mstore_open,
- mstore_close,
- mstore_ping,
-+ mstore_create,
- mstore_search_range,
- mstore_search_alarm,
- mstore_fetch,
-@@ -57,6 +71,8 @@
- mstore_remove,
- mstore_snooze,
- mstore_store,
-+ mstore_delete,
-+ mstore_rename
- };
-
-
-@@ -88,13 +104,98 @@
- }
-
-
-+#ifdef USE_PAM
-+
-+/* PAM support stuff goes here */
-+
-+static pam_handle_t *pamh = NULL;
-+static char *PAM_username;
-+static char *PAM_password;
-+
-+#define COPY_STRING(s) (s) ? strdup(s) : NULL
-+
-+static int PAM_conv (int num_msg,
-+ const struct pam_message **msg,
-+ struct pam_response **resp,
-+ void *appdata_ptr)
-+{
-+ struct pam_response *reply;
-+ int count;
-+
-+ if (num_msg < 1)
-+ return PAM_CONV_ERR;
-+
-+ reply = (struct pam_response *)
-+ calloc (num_msg, sizeof(struct pam_response));
-+
-+ if (!reply)
-+ return PAM_CONV_ERR;
-+
-+ for (count=0; count<num_msg; count++) {
-+ char *string = NULL;
-+
-+ switch (msg[count]->msg_style) {
-+ case PAM_PROMPT_ECHO_ON:
-+ if (!(string = COPY_STRING(PAM_username)))
-+ goto pam_fail_conv;
-+ break;
-+ case PAM_PROMPT_ECHO_OFF:
-+ if (!(string = COPY_STRING(PAM_password)))
-+ goto pam_fail_conv;
-+ break;
-+ case PAM_TEXT_INFO:
-+#ifdef PAM_BINARY_PROMPT
-+ case PAM_BINARY_PROMPT:
-+#endif /* PAM_BINARY_PROMPT */
-+ /* ignore it */
-+ break;
-+ case PAM_ERROR_MSG:
-+ default:
-+ goto pam_fail_conv;
-+ } /* end switch msg[count]->msg_style */
-+
-+ if (string) {
-+ reply[count].resp_retcode = 0;
-+ reply[count].resp = string;
-+ string = NULL;
-+ } /* end if string */
-+
-+ } // end for count
-+
-+ *resp = reply;
-+ return PAM_SUCCESS;
-+
-+pam_fail_conv:
-+ for(count=0; count<num_msg; count++) {
-+ if (!reply[count].resp)
-+ continue;
-+ switch (msg[count]->msg_style) {
-+ case PAM_PROMPT_ECHO_ON:
-+ case PAM_PROMPT_ECHO_OFF:
-+ free(reply[count].resp);
-+ break;
-+ } /* end switch msg[count]->msg_style */
-+ } /* end for count */
-+
-+ free(reply);
-+ return PAM_CONV_ERR;
-+} /* end function static int PAM_conv (...) */
-+
-+static struct pam_conv PAM_conversation = {
-+ &PAM_conv,
-+ NULL
-+};
-+
-+#endif /* USE_PAM */
-+
- bool
- mstore_validuser(const char *username,const char *password)
- {
-+#ifndef USE_PAM
- FILE *mpasswd;
- char line[1000];
- char *musername,*mpassword;
-- mpasswd=fopen("/etc/mpasswd","r");
-+ mpasswd=fopen(MPASSWD_PATH,"r");
- if(!mpasswd)
- {
- printf("Error! couldn't open mpasswd file!\n");
-@@ -123,36 +224,31 @@
- }
- fclose(mpasswd);
- return false;
--}
--
--
--bool
--mstore_userexists(const char *username)
--{
-- FILE *mpasswd;
-- char line[1000];
-- char *musername,*mpassword;
-- mpasswd=fopen("/etc/mpasswd","r");
-- if(!mpasswd)
-- {
-- printf("Error! couldn't open mpasswd file!\n");
-- exit(1);
-- }
-- while(fgets(line,900,mpasswd))
-- {
-- if(line[strlen(line)-1]=='\n') line[strlen(line)-1]=0x00;
-- musername=line;
-- mpassword=strchr(line,':');
-- *mpassword=0x00;
-- mpassword++;
-- if(!strcmp(username,musername))
-- {
-- fclose(mpasswd);
-- return true;
-- }
-- }
-- fclose(mpasswd);
-- return false;
-+#else
-+ /* PAM authentication */
-+ int PAM_error;
-+
-+ PAM_error = pam_start("mstore", username, &PAM_conversation, &pamh);
-+ if (PAM_error != PAM_SUCCESS)
-+ goto login_err;
-+ pam_set_item(pamh, PAM_TTY, "mstore");
-+ pam_set_item(pamh, PAM_RHOST, "localhost");
-+ PAM_error = pam_authenticate(pamh, 0);
-+ if (PAM_error != PAM_SUCCESS)
-+ if (PAM_error == PAM_MAXTRIES)
-+ goto login_err;
-+#ifndef PAM_CRED_ESTABLISH
-+#define PAM_CRED_ESTABLISH PAM_ESTABLISH_CRED
-+#endif /* PAM_CRED_ESTABLISH */
-+ PAM_error = pam_setcred(pamh, PAM_CRED_ESTABLISH);
-+ if (PAM_error != PAM_SUCCESS)
-+ goto login_err;
-+
-+login_err:
-+ pam_end(pamh, PAM_error);
-+ pamh = NULL;
-+ return false;
-+#endif /* ! USE_PAM */
- }
-
-
-@@ -161,8 +257,6 @@
- {
- if (!addr->proto || strcasecmp(addr->proto, "mstore"))
- return false;
-- if (addr->user && !mstore_userexists(addr->user))
-- return false;
- return true;
- }
-
-@@ -197,10 +291,18 @@
- }
-
- cc_login(&username, &password);
-- if (username == NULL)
-+ if (username == NULL) {
-+ #ifdef DEBUG
-+ printf("\nNULL username\n");
-+ #endif
- goto fail;
-- if (!mstore_validuser(username,password))
-+ }
-+ if (!mstore_validuser(username,password)) {
-+ #ifdef DEBUG
-+ printf("\n!mstore_validuser(%s,%s)\n",username,password);
-+ #endif
- goto fail;
-+ }
- }
-
- if (!reopen) {
-@@ -212,13 +314,23 @@
-
- if (options & CAL_LOGIN) {
- /* Copy login_userbuf, folder. */
-- if ((DATA->login_userbuf = strdup(username)) == NULL)
-+ if ((DATA->login_userbuf = strdup(username)) == NULL) {
-+ #ifdef DEBUG
-+ printf("\ncouldn't get login_userbuf (%s)\n",
-+ username);
-+ #endif
- goto fail;
-+ }
-
- }
-
-- if ((DATA->folder = strdup(addr->folder)) == NULL)
-+ if ((DATA->folder = strdup(addr->folder)) == NULL) {
-+ #ifdef DEBUG
-+ printf("\ncouldn't get folder (%s)\n",
-+ addr->folder);
-+ #endif
- goto fail;
-+ }
-
- /* Set up folder_user */
- if(addr->host)
-@@ -229,8 +341,13 @@
- DATA->login_user=DATA->login_userbuf;
- if (addr->user) {
- /* Copy and split folder_userbuf */
-- if ((DATA->folder_userbuf = strdup(addr->user)) == NULL)
-+ if ((DATA->folder_userbuf = strdup(addr->user)) == NULL) {
-+#ifdef DEBUG
-+ printf("\ncouldn't get folder_userbuf (%s)\n",
-+ addr->user);
-+#endif
- goto fail;
-+ }
- /* Check for identical folder/login users. */
- DATA->folder_user=DATA->folder_userbuf;
- if ( !strcmp(DATA->login_user, DATA->folder_user))
-@@ -246,7 +363,6 @@
- DATA->folder_user = DATA->login_user;
- }
-
--
- return stream;
- fail:
- mstore_freestream(stream);
-@@ -270,6 +386,36 @@
- }
-
-
-+bool
-+mstore_create(CALSTREAM *stream, const char *calendar)
-+{
-+ FILE *calfile;
-+ char userpath[1000];
-+
-+ /*
-+ if (!(stream = mstore_open (stream, (const CALADDR *)calendar, 0))) {
-+ #ifdef DEBUG
-+ printf("Error! couldn't open calendar stream!\n");
-+ #endif
-+ return false;
-+ }
-+ */
-+ snprintf(userpath, 900, "%s/%s", DATA->base_path, calendar);
-+ #ifdef DEBUG
-+ printf("attempting fopen on calendar file '%s'\n", userpath);
-+ #endif
-+ calfile = fopen (userpath, "w");
-+ if (!calfile) {
-+ #ifdef DEBUG
-+ printf("Error! couldn't create calendar file!\n");
-+ #endif
-+ return false;
-+ }
-+ fclose (calfile);
-+ return true;
-+}
-+
-+
- CALEVENT *read_event(FILE *calfile)
- {
- char line[100];
-@@ -334,79 +480,75 @@
- datetime_t _end = DT_INIT;
- FILE *calfile;
- char userpath[1000];
-- snprintf(userpath,900,"%s/%s",DATA->base_path,DATA->folder_user);
-- calfile=fopen (userpath,"a+");
-- if(!calfile)
-- {
-+
-+ snprintf(userpath, 900, "%s/%s", DATA->base_path, DATA->folder_user);
-+ calfile = fopen (userpath, "a+");
-+ if(!calfile) {
- printf("Error! couldn't open calendar file!\n");
- exit(1);
-- }
-+ }
- rewind(calfile);
-
- if (start) {
-- if (!dt_hasdate(start))
-- start = NULL;
-- else {
-- dt_setdate(&_start,
-- start->year, start->mon, start->mday);
-- }
-+ if (!dt_hasdate(start)) {
-+ // LM:should this be _start = NULL? and again below for end?
-+ start = NULL;
-+ } else {
-+ dt_setdate(&_start,
-+ start->year, start->mon, start->mday);
-+ }
- }
- if (end) {
-- if (!dt_hasdate(end))
-- end = NULL;
-- else
-- dt_setdate(&_end, end->year, end->mon, end->mday);
-- }
--
-- while((event=read_event(calfile))) {
-- datetime_t clamp = DT_INIT;
--
-- if (!start)
-- dt_setdate(&clamp, 1, JANUARY, 1);
-- else {
-- dt_setdate(&clamp,
-- _start.year, _start.mon, _start.mday);
-- }
-+ if (!dt_hasdate(end))
-+ end = NULL;
-+ else
-+ dt_setdate(&_end, end->year, end->mon, end->mday);
-+ }
-+
-+ while ((event = read_event(calfile))) {
-+ datetime_t clamp = DT_INIT;
-+
-+ if (!start) {
-+ dt_setdate(&clamp, 1, JANUARY, 1);
-+ } else {
-+ dt_setdate(&clamp,
-+ _start.year, _start.mon, _start.mday);
-+ }
-
-- calevent_next_recurrence(event, &clamp, stream->startofweek);
-- if ( dt_hasdate(&clamp) &&
-- !(end && dt_compare(&clamp, &_end) > 0))
-- {
-- cc_searched(event->id);
-- }
-+ calevent_next_recurrence(event, &clamp, stream->startofweek);
-+ if (dt_hasdate(&clamp) &&
-+ !(end && dt_compare(&clamp, &_end) > 0)) {
-+ cc_searched(event->id);
-+ }
-
-- calevent_free(event);
-+ calevent_free(event);
- }
-- fclose(calfile);
-- return true;
-+ fclose(calfile);
-+ return true;
- }
-
-
- bool
- mstore_search_alarm(CALSTREAM *stream, const datetime_t *when)
- {
-- datetime_t start;
-- datetime_t end;
-- long alarm = 0;
-- unsigned long id = 0;
- CALEVENT *event;
- FILE *calfile;
- char userpath[1000];
-
-- snprintf(userpath,900,"%s/%s",DATA->base_path,DATA->folder_user);
-- calfile=fopen (userpath,"a+");
-- if(!calfile)
-- {
-+ snprintf(userpath, 900, "%s/%s", DATA->base_path, DATA->folder_user);
-+ calfile = fopen (userpath, "a+");
-+ if (!calfile) {
- printf("Error! couldn't open calendar file!\n");
- exit(1);
-- }
-+ }
- rewind(calfile);
-- while((event=read_event(calfile))) {
-- if (dt_roll_time(&(event->start), 0, -alarm, 0) &&
-- dt_compare(&(event->start),&start)<=0 &&
-- dt_compare(&end,&(event->end)) <=0)
-+ while ((event = read_event(calfile))) {
-+ if (event->alarm &&
-+ dt_roll_time(&(event->start), 0, -(event->alarm), 0) &&
-+ dt_compare(&(event->start), when) <= 0 &&
-+ dt_compare(when, &(event->end)) <=0)
- {
-- cc_searched(id);
-+ cc_searched(event->id);
- }
- calevent_free(event);
- }
-@@ -422,13 +564,12 @@
- FILE *calfile;
- char userpath[1000];
-
-- snprintf(userpath,900,"%s/%s",DATA->base_path,DATA->folder_user);
-- calfile=fopen (userpath,"a+");
-- if(!calfile)
-- {
-+ snprintf(userpath, 900, "%s/%s", DATA->base_path, DATA->folder_user);
-+ calfile = fopen (userpath,"a+");
-+ if(!calfile) {
- printf("Error! couldn't open calendar file!\n");
- exit(1);
-- }
-+ }
- rewind(calfile);
- while((event=read_event(calfile))) {
- if(event->id==id) {
-@@ -445,43 +586,45 @@
-
-
- bool
--mstore_append( CALSTREAM *stream, const CALADDR *addr,
-- unsigned long *id, const CALEVENT *event)
-+mstore_append(CALSTREAM *stream, const CALADDR *addr,
-+ unsigned long *id, const CALEVENT *event)
- {
-- CALEVENT myevent;
-- FILE *calfile;
-- char userpath[1000];
-+ CALEVENT myevent;
-+ FILE *calfile;
-+ char userpath[1000];
-+
-+ if (addr->host) {
-+ return false;
-+ }
-+ if (addr->user) {
-+ return false;
-+ }
-+ if (strcasecmp(addr->folder, "INBOX")) {
-+ return false;
-+ }
-
-- if (addr->host)
-- return false;
-- if (addr->user)
-- return false;
-- if (strcasecmp(addr->folder, "INBOX"))
-- return false;
-+ if (!dt_hasdate(&event->start)) {
-+ return false;
-+ }
-
-- if (DATA->folder_userbuf)
-- return false;
-- if (!dt_hasdate(&event->start))
-- return false;
-+ snprintf(userpath, 900, "%s/%s", DATA->base_path, DATA->folder_user);
-+ calfile = fopen(userpath, "a");
-+ if (!calfile) {
-+ printf("Error! couldn't open calendar file %s\n",userpath);
-+ perror("mstore_append");
-+ return false;
-+ }
-
-- snprintf(userpath,900,"%s/%s",DATA->base_path,DATA->folder_user);
-- calfile=fopen (userpath,"a");
-- if(!calfile)
-- {
-- printf("Error! couldn't open calendar file %s\n",userpath);
-- perror("mstore_append");
-- return false;
-- }
--
-- myevent = *event;
-- myevent.id = time(NULL);
-- write_event(calfile, &myevent);
-+ myevent = *event;
-+ myevent.id = time(NULL);
-+
-+ write_event(calfile, &myevent);
-
-- fclose(calfile);
-+ fclose(calfile);
-
-- *id = myevent.id;
-+ *id = myevent.id;
-
-- return true;
-+ return true;
- }
-
-
-@@ -609,3 +752,15 @@
- return true;
- }
-
-+
-+bool
-+mstore_delete(CALSTREAM *stream, char *calendar)
-+{
-+ return true;
-+}
-+
-+bool
-+mstore_rename(CALSTREAM *stream, char *src,char *dest)
-+{
-+ return true;
-+}