[Pkg-citadel-commit] r317 - in webcit/trunk/debian: . patches

meskes at alioth.debian.org meskes at alioth.debian.org
Wed Apr 1 10:22:08 UTC 2009


Author: meskes
Date: 2009-04-01 10:22:08 +0000 (Wed, 01 Apr 2009)
New Revision: 317

Added:
   webcit/trunk/debian/patches/743-744.diff
Modified:
   webcit/trunk/debian/changelog
   webcit/trunk/debian/patches/series
Log:
Updated to internal releases 7.44.


Modified: webcit/trunk/debian/changelog
===================================================================
--- webcit/trunk/debian/changelog	2009-04-01 10:03:36 UTC (rev 316)
+++ webcit/trunk/debian/changelog	2009-04-01 10:22:08 UTC (rev 317)
@@ -1,13 +1,17 @@
 webcit (7.43-dfsg-2) unstable; urgency=low
 
+  [ Bernd Zeimetz ]
   * Calculate dependency on citadel-common based on the current webcit
     upstream version, closes: #520881
   * Added Homepage, Vcs-Svn and Vcs-Browser information to debian/control.
   * Added debian/uscan-dfsg-clean.sh and updated debian/watch to remove
     non-free material while running uscan. 
 
- -- Bernd Zeimetz <bzed at debian.org>  Fri, 27 Mar 2009 15:14:37 +0100
+  [ Michael Meskes ]
+  * Updated to internal releases 7.44.
 
+ -- Michael Meskes <meskes at debian.org>  Wed, 01 Apr 2009 12:22:39 +0200
+
 webcit (7.43-dfsg-1) unstable; urgency=high
 
   * New upstream version.
@@ -33,7 +37,7 @@
   * Reworked debconf setup.
   * Improved debconf template by incorporating ideas from Christian Perrier
     <bubulle at debian.org>.
-  * Updated Vietnamese debconf translation, closes: #51273
+  * Updated Vietnamese debconf translation, closes: #518273
   * Updated Swedish debconf translation, closes: #518328
   * Updated Finish debconf translation, closes: #518663
   * Updated French debconf translation, closes: #518918

Added: webcit/trunk/debian/patches/743-744.diff
===================================================================
--- webcit/trunk/debian/patches/743-744.diff	                        (rev 0)
+++ webcit/trunk/debian/patches/743-744.diff	2009-04-01 10:22:08 UTC (rev 317)
@@ -0,0 +1,949 @@
+diff -ruN webcit-7.43-dfsg.orig/availability.c webcit-7.43-dfsg/availability.c
+--- webcit-7.43-dfsg.orig/availability.c	2009-02-20 19:31:00.000000000 +0100
++++ webcit-7.43-dfsg/availability.c	2009-04-01 12:10:42.000000000 +0200
+@@ -54,29 +54,42 @@
+ 	if (icaltime_is_null_time(t1start)) return(0);
+ 	if (icaltime_is_null_time(t2start)) return(0);
+ 
+-	/* First, check for all-day events */
+-	if (t1start.is_date) {
+-		if (!icaltime_compare_date_only(t1start, t2start)) {
+-			return(1);
+-		}
+-		if (!icaltime_is_null_time(t2end)) {
+-			if (!icaltime_compare_date_only(t1start, t2end)) {
+-				return(1);
+-			}
++	/* if either event lacks end time, assume end = start */
++	if (icaltime_is_null_time(t1end))
++		memcpy(&t1end, &t1start, sizeof(struct icaltimetype));
++	else {
++		if (t1end.is_date && icaltime_compare(t1start, t1end)) {
++                        /*
++                         * the end date is non-inclusive so adjust it by one
++                         * day because our test is inclusive, note that a day is
++                         * not too much because we are talking about all day
++                         * events
++			 * if start = end we assume that nevertheless the whole
++			 * day is meant
++                         */
++			icaltime_adjust(&t1end, -1, 0, 0, 0);	
+ 		}
+ 	}
+ 
+-	if (t2start.is_date) {
+-		if (!icaltime_compare_date_only(t2start, t1start)) {
+-			return(1);
+-		}
+-		if (!icaltime_is_null_time(t1end)) {
+-			if (!icaltime_compare_date_only(t2start, t1end)) {
+-				return(1);
+-			}
++	if (icaltime_is_null_time(t2end))
++		memcpy(&t2end, &t2start, sizeof(struct icaltimetype));
++	else {
++		if (t2end.is_date && icaltime_compare(t2start, t2end)) {
++			icaltime_adjust(&t2end, -1, 0, 0, 0);	
+ 		}
+ 	}
+ 
++	/* First, check for all-day events */
++	if (t1start.is_date || t2start.is_date) {
++		/* If event 1 ends before event 2 starts, we're in the clear. */
++		if (icaltime_compare_date_only(t1end, t2start) < 0) return(0);
++
++		/* If event 2 ends before event 1 starts, we're also ok. */
++		if (icaltime_compare_date_only(t2end, t1start) < 0) return(0);
++
++		return(1);
++	}
++
+ 	/* lprintf (9, "Comparing t1start %d:%d t1end %d:%d t2start %d:%d t2end %d:%d \n",
+ 		t1start.hour, t1start.minute, t1end.hour, t1end.minute,
+ 		t2start.hour, t2start.minute, t2end.hour, t2end.minute);
+@@ -84,10 +97,6 @@
+ 
+ 	/* Now check for overlaps using date *and* time. */
+ 
+-	/* First, bail out if either event 1 or event 2 is missing end time. */
+-	if (icaltime_is_null_time(t1end)) return(0);
+-	if (icaltime_is_null_time(t2end)) return(0);
+-
+ 	/* If event 1 ends before event 2 starts, we're in the clear. */
+ 	if (icaltime_compare(t1end, t2start) <= 0) return(0);
+ 	/* lprintf(9, "first passed\n"); */
+diff -ruN webcit-7.43-dfsg.orig/calendar_view.c webcit-7.43-dfsg/calendar_view.c
+--- webcit-7.43-dfsg.orig/calendar_view.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/calendar_view.c	2009-04-01 12:10:42.000000000 +0200
+@@ -163,6 +163,7 @@
+ 	struct icaltimetype end_t;
+ 	struct icaltimetype today_start_t;
+ 	struct icaltimetype today_end_t;
++	struct icaltimetype today_t;
+ 	struct tm starting_tm;
+ 	struct tm ending_tm;
+ 	int all_day_event = 0;
+@@ -200,6 +201,14 @@
+ 	today_end_t.is_utc = 1;
+ 
+ 	/*
++	 * Create another one without caring about the timezone for all day events.
++	 */
++	today_t = icaltime_null_date();
++	today_t.year = year;
++	today_t.month = month;
++	today_t.day = day;
++
++	/*
+ 	 * Now loop through our list of events to see which ones occur today.
+ 	 */
+ 	Pos = GetNewHashPos(WCC->disp_cal_items, 0);
+@@ -224,7 +233,7 @@
+ 
+ 		if (all_day_event)
+ 		{
+-			show_event = ((t.year == year) && (t.month == month) && (t.day == day));
++			show_event = ical_ctdl_is_overlap(t, end_t, today_t, icaltime_null_time());
+ 		}
+ 		else
+ 		{
+@@ -236,6 +245,10 @@
+ 	 	 */
+ 		if (show_event) {
+ 			p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY);
++			if (p == NULL) {
++				p = icalproperty_new_summary(_("Untitled Event"));
++				icalcomponent_add_property(Cal->cal, p);
++			}
+ 			if (p != NULL) {
+ 
+ 				if (all_day_event) {
+@@ -275,33 +288,62 @@
+ 					
+ 					q = icalcomponent_get_first_property(Cal->cal, ICAL_DTSTART_PROPERTY);
+ 					if (q != NULL) {
++						int no_end = 0;
++
+ 						t = icalproperty_get_dtstart(q);
+-						
++						q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY);
++						if (q != NULL) {
++							end_t = icalproperty_get_dtend(q);
++						}
++						else {
++							/*
++							 * events with starting date/time equal
++							 * ending date/time might get only
++							 * DTSTART but no DTEND
++							 */
++							no_end = 1;
++						}
++
+ 						if (t.is_date) {
++							/* all day event */
+ 							struct tm d_tm;
+-							char d_str[32];
++
++							if (!no_end) {
++								/* end given, have to adjust it */
++								icaltime_adjust(&end_t, -1, 0, 0, 0);
++							}
+ 							memset(&d_tm, 0, sizeof d_tm);
+ 							d_tm.tm_year = t.year - 1900;
+ 							d_tm.tm_mon = t.month - 1;
+ 							d_tm.tm_mday = t.day;
+-							wc_strftime(d_str, sizeof d_str, "%x", &d_tm);
+-							wprintf("<i>%s</i> %s<br>",
+-								_("Date:"), d_str);
++							wc_strftime(buf, sizeof buf, "%x", &d_tm);
++
++							if (no_end || !icaltime_compare(t, end_t)) {
++								wprintf("<i>%s</i> %s<br>",
++									_("Date:"), buf);
++							}
++							else {
++								wprintf("<i>%s</i> %s<br>",
++									_("Starting date:"), buf);
++								d_tm.tm_year = end_t.year - 1900;
++								d_tm.tm_mon = end_t.month - 1;
++								d_tm.tm_mday = end_t.day;
++								wc_strftime(buf, sizeof buf, "%x", &d_tm);
++								wprintf("<i>%s</i> %s<br>",
++									_("Ending date:"), buf);
++							}
+ 						}
+ 						else {
+ 							tt = icaltime_as_timet(t);
+ 							webcit_fmt_date(buf, tt, DATEFMT_BRIEF);
+-							wprintf("<i>%s</i> %s<br>",
+-								_("Starting date/time:"), buf);
+-							
+-							/*
+-							 * Embed the 'show end date/time' loop inside here so it
+-							 * only executes if this is NOT an all day event.
+-							 */
+-							q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY);
+-							if (q != NULL) {
+-								t = icalproperty_get_dtend(q);
+-								tt = icaltime_as_timet(t);
++							if (no_end || !icaltime_compare(t, end_t)) {
++								wprintf("<i>%s</i> %s<br>",
++									_("Date/time:"), buf);
++							}
++							else {
++								wprintf("<i>%s</i> %s<br>",
++									_("Starting date/time:"), buf);
++								tt = icaltime_as_timet(end_t);
+ 								webcit_fmt_date(buf, tt, DATEFMT_BRIEF);
+ 								wprintf("<i>%s</i> %s<br>", _("Ending date/time:"), buf);
+ 							}
+@@ -400,6 +442,10 @@
+ 			p = icalcomponent_get_first_property(
+ 				Cal->cal,
+ 				ICAL_SUMMARY_PROPERTY);
++			if (p == NULL) {
++				p = icalproperty_new_summary(_("Untitled Event"));
++				icalcomponent_add_property(Cal->cal, p);
++			}
+ 			e = icalcomponent_get_first_property(
+ 				Cal->cal, 
+ 				ICAL_DTEND_PROPERTY);
+@@ -770,6 +816,7 @@
+ 	struct icaltimetype end_t;
+ 	struct icaltimetype today_start_t;
+ 	struct icaltimetype today_end_t;
++	struct icaltimetype today_t;
+ 	struct tm starting_tm;
+ 	struct tm ending_tm;
+ 	int top = 0;
+@@ -780,8 +827,6 @@
+ 	int endmin = 0;
+ 
+         char buf[256];
+-        struct tm d_tm;
+-        char d_str[32];
+ 
+ 	if (GetCount(WCC->disp_cal_items) == 0) {
+ 		/* nothing to display */
+@@ -809,6 +854,14 @@
+ 	today_end_t = icaltime_from_timet_with_zone(mktime(&ending_tm), 0, icaltimezone_get_utc_timezone());
+ 	today_end_t.is_utc = 1;
+ 
++	/*
++	 * Create another one without caring about the timezone for all day events.
++	 */
++	today_t = icaltime_null_date();
++	today_t.year = year;
++	today_t.month = month;
++	today_t.day = day;
++
+ 	/* Now loop through our list of events to see which ones occur today.
+ 	 */
+ 	Pos = GetNewHashPos(WCC->disp_cal_items, 0);
+@@ -827,29 +880,46 @@
+ 		else {
+ 			memset(&t, 0, sizeof t);
+ 		}
++
++		if (t.is_date) all_day_event = 1;
++
+ 		q = icalcomponent_get_first_property(Cal->cal, ICAL_DTEND_PROPERTY);
+ 		if (q != NULL) {
+ 			end_t = icalproperty_get_dtend(q);
+-			event_tte = icaltime_as_timet(end_t);
+-			localtime_r(&event_tte, &event_tm);
+ 		}
+ 		else {
+-			memset(&end_t, 0, sizeof end_t);
++			/* no end given means end = start */
++			memcpy(&end_t, &t, sizeof(struct icaltimetype));
+ 		}
+-		if (t.is_date) all_day_event = 1;
+ 
+ 		if (all_day_event)
+ 		{
+-			show_event = ((t.year == year) && (t.month == month) && (t.day == day) && (notime_events));
++			show_event = ical_ctdl_is_overlap(t, end_t, today_t, icaltime_null_time());
++			if (icaltime_compare(t, end_t)) {
++				/*
++				 * the end date is non-inclusive so adjust it by one
++				 * day because our test is inclusive, note that a day is
++				 * not to much because we are talking about all day
++				 * events
++				 */
++				icaltime_adjust(&end_t, -1, 0, 0, 0);
++			}
+ 		}
+ 		else
+ 		{
+ 			show_event = ical_ctdl_is_overlap(t, end_t, today_start_t, today_end_t);
+ 		}
+ 
++		event_tte = icaltime_as_timet(end_t);
++		localtime_r(&event_tte, &event_tm);
++
+ 		/* If we determined that this event occurs today, then display it.
+ 	 	 */
+ 		p = icalcomponent_get_first_property(Cal->cal,ICAL_SUMMARY_PROPERTY);
++		if (p == NULL) {
++			p = icalproperty_new_summary(_("Untitled Event"));
++			icalcomponent_add_property(Cal->cal, p);
++		}
+ 
+ 		if ((show_event) && (p != NULL)) {
+ 
+@@ -874,13 +944,17 @@
+                                         wprintf("<i>%s</i> ", _("Location:"));
+                                         escputs((char *)icalproperty_get_comment(q));
+                                         wprintf("<br />");
+-								}
+-                                memset(&d_tm, 0, sizeof d_tm);
+-                                d_tm.tm_year = t.year - 1900;
+-                                d_tm.tm_mon = t.month - 1;
+-                                d_tm.tm_mday = t.day;
+-                                wc_strftime(d_str, sizeof d_str, "%x", &d_tm);
+-                                wprintf("<i>%s</i> %s<br>",_("Date:"), d_str);
++				}
++				if (!icaltime_compare(t, end_t)) { /* one day only */
++					webcit_fmt_date(buf, event_tt, DATEFMT_LOCALEDATE);
++					wprintf("<i>%s</i> %s<br>", _("Date:"), buf);
++				}
++				else {
++					webcit_fmt_date(buf, event_tt, DATEFMT_LOCALEDATE);
++					wprintf("<i>%s</i> %s<br>", _("Starting date:"), buf);
++					webcit_fmt_date(buf, event_tte, DATEFMT_LOCALEDATE);
++					wprintf("<i>%s</i> %s<br>", _("Ending date:"), buf);
++				}
+ 				q = icalcomponent_get_first_property(Cal->cal,ICAL_DESCRIPTION_PROPERTY);
+                                 if (q) {
+                                         wprintf("<i>%s</i> ", _("Notes:"));
+@@ -992,10 +1066,16 @@
+                                         escputs((char *)icalproperty_get_comment(q));
+                                         wprintf("<br />");
+ 								}
+-                                webcit_fmt_date(buf, event_tt, DATEFMT_BRIEF);
+-                                wprintf("<i>%s</i> %s<br>", _("Starting date/time:"), buf);
+-                                webcit_fmt_date(buf, event_tte, DATEFMT_BRIEF);
+-                                wprintf("<i>%s</i> %s<br>", _("Ending date/time:"), buf);
++				if (!icaltime_compare(t, end_t)) { /* one day only */
++					webcit_fmt_date(buf, event_tt, DATEFMT_BRIEF);
++					wprintf("<i>%s</i> %s<br>", _("Date/time:"), buf);
++				}
++				else {
++					webcit_fmt_date(buf, event_tt, DATEFMT_BRIEF);
++					wprintf("<i>%s</i> %s<br>", _("Starting date/time:"), buf);
++					webcit_fmt_date(buf, event_tte, DATEFMT_BRIEF);
++					wprintf("<i>%s</i> %s<br>", _("Ending date/time:"), buf);
++				}
+ 				q = icalcomponent_get_first_property(Cal->cal,ICAL_DESCRIPTION_PROPERTY);
+                                 if (q) {
+                                         wprintf("<i>%s</i> ", _("Notes:"));
+@@ -1294,6 +1374,10 @@
+ 			) {
+ 
+ 				p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY);
++				if (p == NULL) {
++					p = icalproperty_new_summary(_("Untitled Task"));
++					icalcomponent_add_property(Cal->cal, p);
++				}
+ 				if (p != NULL) {
+ 
+ 
+diff -ruN webcit-7.43-dfsg.orig/configure.ac webcit-7.43-dfsg/configure.ac
+--- webcit-7.43-dfsg.orig/configure.ac	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/configure.ac	2009-04-01 12:11:50.000000000 +0200
+@@ -1,6 +1,6 @@
+ dnl Process this file with autoconf to produce a configure script.
+-dnl $Id: configure.ac 7220 2009-03-17 03:22:44Z ajc $
+-AC_INIT([WebCit], [7.43], [http://www.citadel.org/])
++dnl $Id: configure.ac 7281 2009-03-30 21:48:20Z ajc $
++AC_INIT([WebCit], [7.44], [http://www.citadel.org/])
+ 
+ 
+ AC_SUBST(PROG_SUBDIRS)
+diff -ruN webcit-7.43-dfsg.orig/event.c webcit-7.43-dfsg/event.c
+--- webcit-7.43-dfsg.orig/event.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/event.c	2009-04-01 12:10:42.000000000 +0200
+@@ -242,25 +242,34 @@
+ 		}
+ 	}
+ 	else {
+-		/*
+-		 * If this is an all-day-event, set the end time to be identical to
+-		 * the start time (the hour/minute/second will be set to midnight).
+-		 * Otherwise extract or create it.
+-		 */
+-		if (t_start.is_date) {
+-			t_end = t_start;
++		if (created_new_vevent == 1) {
++			/* set default duration */
++			if (t_start.is_date) {
++				/*
++				 * If this is an all-day-event, set the end time to be identical to
++				 * the start time (the hour/minute/second will be set to midnight).
++				 */
++				t_end = t_start;
++			}
++			else {
++				/*
++				 * If this is not an all-day event and there is no
++				 * end time specified, make the default one hour
++				 * from the start time.
++				 */
++				t_end = t_start;
++				t_end.hour += 1;
++				t_end.second = 0;
++				t_end = icaltime_normalize(t_end);
++				/* t_end = icaltime_from_timet(now, 0); */
++			}
+ 		}
+ 		else {
+ 			/*
+-			 * If this is not an all-day event and there is no
+-			 * end time specified, make the default one hour
+-			 * from the start time.
++			 * If an existing event has no end date/time this is
++			 * supposed to mean end = start.
+ 			 */
+ 			t_end = t_start;
+-			t_end.hour += 1;
+-			t_end.second = 0;
+-			t_end = icaltime_normalize(t_end);
+-			/* t_end = icaltime_from_timet(now, 0); */
+ 		}
+ 	}
+ 	display_icaltimetype_as_webform(&t_end, "dtend", 0);
+diff -ruN webcit-7.43-dfsg.orig/fmt_date.c webcit-7.43-dfsg/fmt_date.c
+--- webcit-7.43-dfsg.orig/fmt_date.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/fmt_date.c	2009-04-01 12:10:42.000000000 +0200
+@@ -67,6 +67,7 @@
+ 	 *                 show the month and day, and the time
+ 	 *		      older than 6 months, show only the date
+ 	 * DATEFMT_RAWDATE:   show full date, regardless of age 
++	 * DATEFMT_LOCALEDATE:   show full date as prefered for the locale
+ 	 */
+ 
+ 	switch (Format) {
+@@ -98,6 +99,9 @@
+ 		case DATEFMT_RAWDATE:
+ 			wc_strftime(buf, 32, "%a %b %d %Y", &tm);
+ 			break;
++		case DATEFMT_LOCALEDATE:
++			wc_strftime(buf, 32, "%x", &tm);
++			break;
+ 	}
+ }
+ 
+diff -ruN webcit-7.43-dfsg.orig/messages.c webcit-7.43-dfsg/messages.c
+--- webcit-7.43-dfsg.orig/messages.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/messages.c	2009-04-01 12:10:42.000000000 +0200
+@@ -399,6 +399,7 @@
+ 	long len;
+ 	int n;
+ 	int skipit;
++	const char *Ptr;
+ 
+ 	if (WCC->summ != NULL) {
+ 		DeleteHash(&WCC->summ);
+@@ -408,23 +409,24 @@
+ 	
+ 	Buf = NewStrBuf();
+ 	serv_puts(servcmd);
+-	StrBuf_ServGetln(Buf);
++	StrBuf_ServGetlnBuffered(Buf);
+ 	if (GetServerStatus(Buf, NULL) != 1) {
+ 		FreeStrBuf(&Buf);
+ 		return (nummsgs);
+ 	}
+ 	Buf2 = NewStrBuf();
+-	while (len = StrBuf_ServGetln(Buf),
++	while (len = StrBuf_ServGetlnBuffered(Buf),
+ 	       ((len != 3)  ||
+ 		strcmp(ChrPtr(Buf), "000")!= 0))
+ 	{
+ 		if (nummsgs < maxload) {
+ 			skipit = 0;
++			Ptr = NULL;
+ 			Msg = (message_summary*)malloc(sizeof(message_summary));
+ 			memset(Msg, 0, sizeof(message_summary));
+ 
+-			Msg->msgnum = StrBufExtract_long(Buf, 0, '|');
+-			Msg->date = StrBufExtract_long(Buf, 1, '|');
++			Msg->msgnum = StrBufExtractNext_long(Buf, &Ptr, '|');
++			Msg->date = StrBufExtractNext_long(Buf, &Ptr, '|');
+ 			/* 
+ 			 * as citserver probably gives us messages in forward date sorting
+ 			 * nummsgs should be the same order as the message date.
+@@ -436,14 +438,14 @@
+ 			}
+ 			if (!skipit) {
+ 				Msg->from = NewStrBufPlain(NULL, StrLength(Buf));
+-				StrBufExtract_token(Buf2, Buf, 2, '|');
++				StrBufExtract_NextToken(Buf2, Buf, &Ptr, '|');
+ 				if (StrLength(Buf2) != 0) {
+ 					/** Handle senders with RFC2047 encoding */
+ 					StrBuf_RFC822_to_Utf8(Msg->from, Buf2, WCC->DefaultCharset, FoundCharset);
+ 				}
+ 			
+ 				/** Nodename */
+-				StrBufExtract_token(Buf2, Buf, 3, '|');
++				StrBufExtract_NextToken(Buf2, Buf, &Ptr, '|');
+ 				if ((StrLength(Buf2) !=0 ) &&
+ 				    ( ((WCC->room_flags & QR_NETWORK)
+ 				       || ((strcasecmp(ChrPtr(Buf2), ChrPtr(WCC->serv_info->serv_nodename))
+@@ -456,9 +458,9 @@
+ 				/** Not used:
+ 				    StrBufExtract_token(Msg->inetaddr, Buf, 4, '|');
+ 				*/
+-
++				StrBufSkip_NTokenS(Buf, &Ptr, '|', 1);
+ 				Msg->subj = NewStrBufPlain(NULL, StrLength(Buf));
+-				StrBufExtract_token(Buf2,  Buf, 5, '|');
++				StrBufExtract_NextToken(Buf2,  Buf, &Ptr, '|');
+ 				if (StrLength(Buf2) == 0)
+ 					StrBufAppendBufPlain(Msg->subj, _("(no subject)"), -1,0);
+ 				else {
+@@ -1158,9 +1160,10 @@
+ 		{
+ 			const StrBuf *ref = sbstr("references");
+ 			references = NewStrBufPlain(ChrPtr(ref), StrLength(ref));
+-			lprintf(9, "Converting: %s\n", ChrPtr(references));
++			if (*ChrPtr(references) == '|') {	/* remove leading '|' if present */
++				StrBufCutLeft(references, 1);
++			}
+ 			StrBufReplaceChars(references, '|', '!');
+-			lprintf(9, "Converted: %s\n", ChrPtr(references));
+ 		}
+ 		if (havebstr("subject")) {
+ 			const StrBuf *Subj;
+diff -ruN webcit-7.43-dfsg.orig/msg_renderers.c webcit-7.43-dfsg/msg_renderers.c
+--- webcit-7.43-dfsg.orig/msg_renderers.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/msg_renderers.c	2009-04-01 12:10:42.000000000 +0200
+@@ -1132,7 +1132,7 @@
+ 	RegisterNamespace("MAIL:SUMM:ORGROOM", 0, 2, tmplput_MAIL_SUMM_ORGROOM,  CTX_MAILSUM);
+ 	RegisterNamespace("MAIL:SUMM:RFCA", 0, 2, tmplput_MAIL_SUMM_RFCA,  CTX_MAILSUM);
+ 	RegisterNamespace("MAIL:SUMM:OTHERNODE", 2, 0, tmplput_MAIL_SUMM_OTHERNODE,  CTX_MAILSUM);
+-	RegisterNamespace("MAIL:SUMM:REFIDS", 0, 0, tmplput_MAIL_SUMM_REFIDS,  CTX_MAILSUM);
++	RegisterNamespace("MAIL:SUMM:REFIDS", 0, 1, tmplput_MAIL_SUMM_REFIDS,  CTX_MAILSUM);
+ 	RegisterNamespace("MAIL:SUMM:INREPLYTO", 0, 2, tmplput_MAIL_SUMM_INREPLYTO,  CTX_MAILSUM);
+ 	RegisterNamespace("MAIL:BODY", 0, 2, tmplput_MAIL_BODY,  CTX_MAILSUM);
+ 	RegisterNamespace("MAIL:QUOTETEXT", 1, 2, tmplput_QUOTED_MAIL_BODY,  CTX_NONE);
+diff -ruN webcit-7.43-dfsg.orig/paging.c webcit-7.43-dfsg/paging.c
+--- webcit-7.43-dfsg.orig/paging.c	2009-02-20 19:31:00.000000000 +0100
++++ webcit-7.43-dfsg/paging.c	2009-04-01 12:10:42.000000000 +0200
+@@ -1,15 +1,11 @@
+ /*
+  * $Id: paging.c 6912 2009-01-08 23:11:56Z dothebart $
+  */
+-/**
+- * \defgroup PageFunc Functions which implement the chat and paging facilities.
+- * \ingroup ClientPower
+- */
+-/*@{*/
++
+ #include "webcit.h"
+ 
+-/**
+- * \brief display the form for paging (x-messaging) another user
++/*
++ * display the form for paging (x-messaging) another user
+  */
+ void display_page(void)
+ {
+@@ -501,6 +497,25 @@
+ 	wDumpContent(0);
+ }
+ 
++
++void ajax_send_instant_message(void) {
++	char recp[256];
++	char buf[256];
++
++	safestrncpy(recp, bstr("recp"), sizeof recp);
++
++	serv_printf("SEXP %s|-", recp);
++	serv_getln(buf, sizeof buf);
++
++	if (buf[0] == '4') {
++		text_to_server(bstr("msg"));
++		serv_puts("000");
++	}
++
++	escputs(buf);	/* doesn't really matter what we return - the client ignores it */
++}
++
++
+ void 
+ InitModule_PAGING
+ (void)
+@@ -510,6 +525,5 @@
+ 	WebcitAddUrlHandler(HKEY("chat"), do_chat, 0);
+ 	WebcitAddUrlHandler(HKEY("chat_recv"), chat_recv, 0);
+ 	WebcitAddUrlHandler(HKEY("chat_send"), chat_send, 0);
++	WebcitAddUrlHandler(HKEY("ajax_send_instant_message"), ajax_send_instant_message, AJAX);
+ }
+-
+-/*@}*/
+diff -ruN webcit-7.43-dfsg.orig/po/es.po webcit-7.43-dfsg/po/es.po
+--- webcit-7.43-dfsg.orig/po/es.po	2009-03-17 04:27:26.000000000 +0100
++++ webcit-7.43-dfsg/po/es.po	2009-04-01 12:10:42.000000000 +0200
+@@ -4,7 +4,8 @@
+ #
+ # Spanish translation
+ # Copyright (C) 2005 - 2009 By Gabriel C. Huertas
+-# This file is distributed under GPL v2 <TODO>
++# This file is distributed under the GNU General Public License;
++# either Version 2 or (at your option) any later version.
+ #
+ #, fuzzy
+ msgid ""
+diff -ruN webcit-7.43-dfsg.orig/README.txt webcit-7.43-dfsg/README.txt
+--- webcit-7.43-dfsg.orig/README.txt	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/README.txt	2009-04-01 12:10:42.000000000 +0200
+@@ -1,5 +1,5 @@
+                         WEBCIT for the Citadel System
+-                               version 7.43
++                               version 7.44
+  
+    Copyright (C) 1996-2009 by the authors.  Portions written by:
+  
+diff -ruN webcit-7.43-dfsg.orig/roomops.c webcit-7.43-dfsg/roomops.c
+--- webcit-7.43-dfsg.orig/roomops.c	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/roomops.c	2009-04-01 12:10:42.000000000 +0200
+@@ -4020,30 +4020,23 @@
+ 
+ 	switch(WCC->wc_view) {
+ 	case VIEW_BBS:
+-		return TP->Tokens->Params[2]->Start[7]=='B';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_BBS"));
+ 	case VIEW_MAILBOX:
+-		return TP->Tokens->Params[2]->Start[7]=='M';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_MAILBOX"));
+ 	case VIEW_ADDRESSBOOK:
+-		return TP->Tokens->Params[2]->Start[7]=='A';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_ADDRESSBOOK"));
+ 	case VIEW_TASKS:
+-		return TP->Tokens->Params[2]->Start[7]=='T';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_TASKS"));
+ 	case VIEW_NOTES:
+-		return TP->Tokens->Params[2]->Start[7]=='N';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_NOTES"));
+ 	case VIEW_WIKI:
+-		return TP->Tokens->Params[2]->Start[7]=='W';
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_WIKI"));
+ 	case VIEW_JOURNAL:
+-		return TP->Tokens->Params[2]->Start[7]=='J';
+-
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_JOURNAL"));
+ 	case VIEW_CALENDAR:
+-		if (TP->Tokens->Params[2]->len < 13)
+-			return 0;
+-		return TP->Tokens->Params[2]->Start[10]=='E';
+-
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_CALENDAR"));
+ 	case VIEW_CALBRIEF:
+-		if (TP->Tokens->Params[3]->len < 13)
+-			return 0;
+-		return TP->Tokens->Params[2]->Start[10]=='B';
+-
++		return (!strcasecmp(TP->Tokens->Params[2]->Start, "VIEW_CALBRIEF"));
+ 	default:
+ 		return 0;
+ 	}
+diff -ruN webcit-7.43-dfsg.orig/static/instant_messenger.html webcit-7.43-dfsg/static/instant_messenger.html
+--- webcit-7.43-dfsg.orig/static/instant_messenger.html	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/static/instant_messenger.html	2009-04-01 12:10:42.000000000 +0200
+@@ -55,8 +55,9 @@
+ 
+ 	// Send the text to the server
+ 	parms = 'r=' + Math.random()
+-		+ '&g_cmd=SEXP ' + recipient + '|-\n' + escape(thetext);
+-	new Ajax.Request('../ajax_servcmd',
++		+ '&recp=' + recipient
++		+ '&msg=' + encodeURIComponent(thetext);
++	new Ajax.Request('../ajax_send_instant_message',
+ 		{
+ 			method: 'post',
+ 			parameters: parms
+diff -ruN webcit-7.43-dfsg.orig/static/summaryview.js webcit-7.43-dfsg/static/summaryview.js
+--- webcit-7.43-dfsg.orig/static/summaryview.js	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/static/summaryview.js	2009-04-01 12:10:42.000000000 +0200
+@@ -272,6 +272,7 @@
+       method: 'post',
+ 	  parameters: 'g_cmd=SEEN ' + msgId + '|1',
+ 	  onComplete: CtdlMarkRowAsRead(parent)});
++  // If the shift key modifier is used, mark a range...
+   } else if (event.button != 2 && event.shiftKey) {
+     markRow(parent);
+     var rowId = parent.ctdlRowId;
+@@ -288,8 +289,14 @@
+       WCLog("Marking row "+x);
+       markRow(rowArray[x]);
+     }
++  // If the ctrl key modifier is used, toggle one message
+   } else if (event.button != 2 && (event.ctrlKey || event.altKey)) {
+-    markRow(parent);
++    if (parent.ctdlMarked == true) {
++      unmarkRow(parent);
++    }
++    else {
++      markRow(parent);
++    }
+   }
+ }
+ function CtdlMarkRowAsRead(rowElement) {
+@@ -338,7 +345,7 @@
+     currentSorterToggle.className = "";
+   }
+ }
+-function markRow( row) {
++function markRow(row) {
+   var msgId = row.ctdlMsgId;
+   row.className = row.className += " marked_row";
+   row.ctdlMarked = true;
+diff -ruN webcit-7.43-dfsg.orig/static/t/richedit.html webcit-7.43-dfsg/static/t/richedit.html
+--- webcit-7.43-dfsg.orig/static/t/richedit.html	2009-02-20 19:30:59.000000000 +0100
++++ webcit-7.43-dfsg/static/t/richedit.html	2009-04-01 12:10:42.000000000 +0200
+@@ -6,7 +6,7 @@
+ 	browsers : "msie,gecko,safari,opera",
+ 	theme : "advanced",
+ 	plugins : "iespell",
+-	theme_advanced_buttons1 : "bold, italic, underline, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, bullist, numlist, cut, copy, paste, link, image, help, forecolor, iespell, code",
++	theme_advanced_buttons1 : "bold, italic, underline, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, blockquote, bullist, numlist, cut, copy, paste, link, image, help, forecolor, iespell, code",
+ 	theme_advanced_buttons2 : "",
+ 	theme_advanced_buttons3 : "",
+ 	content_css : "static/webcit-tinymce.css"
+diff -ruN webcit-7.43-dfsg.orig/static/t/view_message.html webcit-7.43-dfsg/static/t/view_message.html
+--- webcit-7.43-dfsg.orig/static/t/view_message.html	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/static/t/view_message.html	2009-04-01 12:10:42.000000000 +0200
+@@ -12,35 +12,26 @@
+  <?!("COND:MAIL:ANON", 4)>****<??("X", 4)>
+  <?!("COND:MAIL:TO", 5)><?_("to")> <?MAIL:SUMM:TO("X")><?!("X", 5)><br/>
+ <?!("COND:MAIL:SUMM:CCCC", 6)><?_("CC:")><?MAIL:SUMM:CCCC("X")><??("X", 6)>
+-<?!("COND:MAIL:SUBJ", 7)><p class="message_subject"><?_("Subject:")> <?MAIL:SUMM:SUBJECT></p><??("X", 7)>
++<?!("COND:MAIL:SUBJ", 7)><p class="message_subject"><?_("Subject:")> <?MAIL:SUMM:SUBJECT("X")></p><??("X", 7)>
+  <p style="visibility: hidden;" id="msg<?MAIL:SUMM:N>" class="msgbuttons">
+-
+-<?!("COND:MAIL:SUMM:RFCA", 8)>
+-   <??("COND:ROOM:TYPE_IS", 9, "VIEW_BBS")>
+-   <a href="display_enter?recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
+-   <a href="display_enter?recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E%2C<?MAIL:SUMM:ALLRCPT("U")>&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("ReplyAll")><span>]</span></a> 
+-   <a href="display_enter?fwdquote=<?MAIL:SUMM:N>&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Fwd:%%20", "Fwd:")>"><span>[</span><?_("Forward")><span>]</span></a> 
+-   <??("X", 9)>
+-
+-   <?!("COND:ROOM:TYPE_IS", 10, "VIEW_BBS")>
+-   <a href="display_enter?recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
+-   <a href="display_enter?replyquote=<?MAIL:SUMM:N>&recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%%20", "Re:")>"><span>[</span><?_("ReplyQuoted")><span>]</span></a> 
+-   <?!("X", 10)>
++<?!("COND:ROOM:TYPE_IS", 8, "VIEW_BBS")>
++   <a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
++   <a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?replyquote=<?MAIL:SUMM:N>&recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%%20", "Re:")>"><span>[</span><?_("ReplyQuoted")><span>]</span></a> 
+ <?!("X", 8)>
+-<??("COND:MAIL:SUMM:RFCA", 11)>
+-   <??("COND:ROOM:TYPE_IS", 12, "VIEW_BBS")>
+-   <a href="display_enter?recp=<?MAIL:SUMM:FROM("U")>&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
+-   <a href="display_enter?recp=<?MAIL:SUMM:FROM("U")>%2C<?MAIL:SUMM:ALLRCPT("U")>&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("ReplyAll")><span>]</span></a> 
+-   <a href="display_enter?fwdquote=<?MAIL:SUMM:N>&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Fwd:%%20", "Fwd:")>"><span>[</span><?_("Forward")><span>]</span></a> 
+-   <??("X", 12)>
+-
+-   <?!("COND:ROOM:TYPE_IS", 13, "VIEW_BBS")>
+-   <a href="display_enter?recp=<?MAIL:SUMM:FROM("U")>&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
+-   <a href="display_enter?replyquote=<?MAIL:SUMM:N>&recp=<?MAIL:SUMM:FROM("U")>&references=<?MAIL:SUMM:INREPLYTO("U")>%3C<?MAIL:SUMM:RFCA("U")>%3E&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%%20", "Re:")>"><span>[</span><?_("ReplyQuoted")><span>]</span></a> 
+-   <?!("X", 13)>
+-<??("X", 11)>
+-   <a href="confirm_move_msg?msgid=<?MAIL:SUMM:N>"><span>[</span><?_("Move")><span>]</span></a> 
++<??("COND:ROOM:TYPE_IS", 9, "VIEW_BBS")>
++	<?!("COND:MAIL:SUMM:RFCA", 10)>
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?replyquote=<?MAIL:SUMM:N>?recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?replyquote=<?MAIL:SUMM:N>?recp=%22<?MAIL:SUMM:FROM("U")>%22%3C<?MAIL:SUMM:RFCA("U")>%3E%2C<?MAIL:SUMM:ALLRCPT("U")>?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("ReplyAll")><span>]</span></a> 
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?fwdquote=<?MAIL:SUMM:N>&subject=<?MAIL:SUMM:SUBJECT("U", 0, "Fwd:%%20", "Fwd:")>"><span>[</span><?_("Forward")><span>]</span></a> 
++	<?!("X", 10)>
++	<??("COND:MAIL:SUMM:RFCA", 11)>
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?replyquote=<?MAIL:SUMM:N>?recp=<?MAIL:SUMM:FROM("U")>?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("Reply")><span>]</span></a> 
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?replyquote=<?MAIL:SUMM:N>?recp=<?MAIL:SUMM:FROM("U")>%2C<?MAIL:SUMM:ALLRCPT("U")>?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Re:%20", "Re:")>"><span>[</span><?_("ReplyAll")><span>]</span></a> 
++		<a href="display_enter?references=<?MAIL:SUMM:REFIDS("U")>%7C<?MAIL:SUMM:INREPLYTO("U")>?fwdquote=<?MAIL:SUMM:N>?subject=<?MAIL:SUMM:SUBJECT("U", 0, "Fwd:%%20", "Fwd:")>"><span>[</span><?_("Forward")><span>]</span></a> 
++	<??("X", 11)>
++<??("X", 9)>
+ <?!("COND:ROOM:EDITACCESS", 14)>
++   <a href="confirm_move_msg?msgid=<?MAIL:SUMM:N>"><span>[</span><?_("Move")><span>]</span></a> 
+    <a href="delete_msg?msgid=<?MAIL:SUMM:N>" onclick="return confirm('<?_("Delete this message?")>');"><span>[</span><?_("Delete")><span>]</span> </a> 
+ <??("X", 14)>
+    <a href="#" onclick="window.open('msgheaders/<?MAIL:SUMM:N>', 'headers<?MAIL:SUMM:N>', 'toolbar=no,location=no,directories=no,copyhistory=no,status=yes,scrollbars=yes,resizable=yes,width=600,height=400'); "><span>[</span><?_("Headers")><span>]</span></a>
+diff -ruN webcit-7.43-dfsg.orig/sysdep.h.in~ webcit-7.43-dfsg/sysdep.h.in~
+--- webcit-7.43-dfsg.orig/sysdep.h.in~	2008-04-11 16:29:10.000000000 +0200
++++ webcit-7.43-dfsg/sysdep.h.in~	1970-01-01 01:00:00.000000000 +0100
+@@ -1,138 +0,0 @@
+-/* sysdep.h.in.  Generated from configure.ac by autoheader.  */
+-
+-/* define, if the user suplied a data-directory to use. */
+-#undef DATADIR
+-
+-/* where to find our mail editor */
+-#undef EDITORDIR
+-
+-/* whether we have NLS support */
+-#undef ENABLE_NLS
+-
+-/* Define to 1 if you have the `backtrace' function. */
+-#undef HAVE_BACKTRACE
+-
+-/* Define to 1 if you have the <fcntl.h> header file. */
+-#undef HAVE_FCNTL_H
+-
+-/* Define to 1 if you have the `gettext' function. */
+-#undef HAVE_GETTEXT
+-
+-/* whether we have iconv for charset conversion */
+-#undef HAVE_ICONV
+-
+-/* Define to 1 if you have the <iconv.h> header file. */
+-#undef HAVE_ICONV_H
+-
+-/* Define to 1 if you have the <inttypes.h> header file. */
+-#undef HAVE_INTTYPES_H
+-
+-/* Define to 1 if you have the `pthread' library (-lpthread). */
+-#undef HAVE_LIBPTHREAD
+-
+-/* Define to 1 if you have the `pthreads' library (-lpthreads). */
+-#undef HAVE_LIBPTHREADS
+-
+-/* Define to 1 if you have the <limits.h> header file. */
+-#undef HAVE_LIMITS_H
+-
+-/* Define to 1 if you have the <memory.h> header file. */
+-#undef HAVE_MEMORY_H
+-
+-/* whethe we have openssl */
+-#undef HAVE_OPENSSL
+-
+-/* should we put our non volatile files elsewhere? */
+-#undef HAVE_RUN_DIR
+-
+-/* Define to 1 if you have the `snprintf' function. */
+-#undef HAVE_SNPRINTF
+-
+-/* Define to 1 if you have the <stdint.h> header file. */
+-#undef HAVE_STDINT_H
+-
+-/* Define to 1 if you have the <stdlib.h> header file. */
+-#undef HAVE_STDLIB_H
+-
+-/* Define to 1 if you have the `strftime_l' function. */
+-#undef HAVE_STRFTIME_L
+-
+-/* Define to 1 if you have the <strings.h> header file. */
+-#undef HAVE_STRINGS_H
+-
+-/* Define to 1 if you have the <string.h> header file. */
+-#undef HAVE_STRING_H
+-
+-/* Define to 1 if you have the <sys/stat.h> header file. */
+-#undef HAVE_SYS_STAT_H
+-
+-/* Define to 1 if you have the <sys/time.h> header file. */
+-#undef HAVE_SYS_TIME_H
+-
+-/* Define to 1 if you have the <sys/types.h> header file. */
+-#undef HAVE_SYS_TYPES_H
+-
+-/* Define to 1 if you have the <unistd.h> header file. */
+-#undef HAVE_UNISTD_H
+-
+-/* Define to 1 if you have the `uselocale' function. */
+-#undef HAVE_USELOCALE
+-
+-/* whether we have zlib */
+-#undef HAVE_ZLIB
+-
+-/* Define to 1 if you have the <zlib.h> header file. */
+-#undef HAVE_ZLIB_H
+-
+-/* where to find our pot files */
+-#undef LOCALEDIR
+-
+-/* Define to the address where bug reports for this package should be sent. */
+-#undef PACKAGE_BUGREPORT
+-
+-/* Define to the full name of this package. */
+-#undef PACKAGE_NAME
+-
+-/* Define to the full name and version of this package. */
+-#undef PACKAGE_STRING
+-
+-/* Define to the one symbol short name of this package. */
+-#undef PACKAGE_TARNAME
+-
+-/* Define to the version of this package. */
+-#undef PACKAGE_VERSION
+-
+-/* Program dirs */
+-#undef PROG_SUBDIRS
+-
+-/* Define as the return type of signal handlers (`int' or `void'). */
+-#undef RETSIGTYPE
+-
+-/* define, where the config should go in unix style */
+-#undef RUNDIR
+-
+-/* were should we put our keys? */
+-#undef SSL_DIR
+-
+-/* Define to 1 if you have the ANSI C header files. */
+-#undef STDC_HEADERS
+-
+-/* define this to the Citadel home directory */
+-#undef WEBCITDIR
+-
+-/* where to find our templates and pics */
+-#undef WWWDIR
+-
+-/* Enable GNU extensions on systems that have them.  */
+-#ifndef _GNU_SOURCE
+-# undef _GNU_SOURCE
+-#endif
+-
+-/* Define to empty if `const' does not conform to ANSI C. */
+-#undef const
+-
+-/* Define to `long' if <sys/types.h> does not define. */
+-#undef off_t
+-
+-/* Define to `unsigned' if <sys/types.h> does not define. */
+-#undef size_t
+diff -ruN webcit-7.43-dfsg.orig/webcit.c webcit-7.43-dfsg/webcit.c
+--- webcit-7.43-dfsg.orig/webcit.c	2009-02-20 19:31:00.000000000 +0100
++++ webcit-7.43-dfsg/webcit.c	2009-04-01 12:10:42.000000000 +0200
+@@ -845,6 +845,8 @@
+ 						MINIMUM_CIT_VERSION / 100,
+ 						MINIMUM_CIT_VERSION % 100
+ 					);
++				hprintf("HTTP/1.1 200 OK\r\n");
++				hprintf("Content-type: text/plain; charset=utf-8\r\n");
+ 				end_burst();
+ 				end_webcit_session();
+ 				goto SKIP_ALL_THIS_CRAP;
+diff -ruN webcit-7.43-dfsg.orig/webcit.h webcit-7.43-dfsg/webcit.h
+--- webcit-7.43-dfsg.orig/webcit.h	2009-03-17 04:27:27.000000000 +0100
++++ webcit-7.43-dfsg/webcit.h	2009-04-01 12:10:42.000000000 +0200
+@@ -113,9 +113,9 @@
+ #define PORT_NUM		2000		/* port number to listen on */
+ #define DEVELOPER_ID		0
+ #define CLIENT_ID		4
+-#define CLIENT_VERSION		743		/* This version of WebCit */
+-#define MINIMUM_CIT_VERSION	743		/* min required Citadel ver */
+-#define	LIBCITADEL_MIN		743		/* min required libcitadel ver */
++#define CLIENT_VERSION		744		/* This version of WebCit */
++#define MINIMUM_CIT_VERSION	744		/* min required Citadel ver */
++#define	LIBCITADEL_MIN		744		/* min required libcitadel ver */
+ #define DEFAULT_HOST		"localhost"	/* Default Citadel server */
+ #define DEFAULT_PORT		"504"
+ #define TARGET			"webcit01"	/* Target for inline URL's */
+@@ -725,6 +725,7 @@
+ #define DATEFMT_FULL 0
+ #define DATEFMT_BRIEF 1
+ #define DATEFMT_RAWDATE 2
++#define DATEFMT_LOCALEDATE 3
+ void webcit_fmt_date(char *buf, time_t thetime, int Format);
+ int fetch_http(char *url, char *target_buf, int maxbytes);
+ void free_attachments(wcsession *sess);

Modified: webcit/trunk/debian/patches/series
===================================================================
--- webcit/trunk/debian/patches/series	2009-04-01 10:03:36 UTC (rev 316)
+++ webcit/trunk/debian/patches/series	2009-04-01 10:22:08 UTC (rev 317)
@@ -0,0 +1 @@
+743-744.diff




More information about the Pkg-citadel-commit mailing list