[evolution-patches] e-d-s/addressbook Win32 portability patch



Initial Win32 portability patch to the addressbook part of
e-d-s. Compared to for instance camel, addressbook seems rather
trivial portability-wise.

(No idea whether this actually works on Win32 or not yet, this is just
to make it build.)

--tml

Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/ChangeLog,v
retrieving revision 1.273
diff -p -u -2 -r1.273 ChangeLog
--- addressbook/ChangeLog	20 May 2005 11:15:22 -0000	1.273
+++ addressbook/ChangeLog	24 May 2005 08:31:21 -0000
@@ -1,2 +1,34 @@
+2005-05-24  Tor Lillqvist  <tml novell com>
+
+	* backends/*/Makefile.am (*_LIBADD): Add libebook, libedata-book,
+	libedataserver, libdb and EVOLUTION_ADDRESSBOOK_LIBS as needed to
+	satisfy -no-undefined.
+	(*_LDFLAGS): Add NO_UNDEFINED (expands to -no-undefined on
+	Windows).
+	
+	* backends/file/e-book-backend-file-factory.c
+	* libedata-book/e-book-backend-factory.c
+	* libedata-book/e-book-backend.c
+	* libedata-book/e-data-book-factory.c: Drop superfluous inclusion
+	of <pthread.h>. No pthread API was used in these files.
+
+	* backends/file/e-book-backend-file.c (set_revision)
+	* backends/vcf/e-book-backend-vcf.c (set_revision): Use
+	g_get_current_time() instead of gettimeofday().
+	
+	* libebook/Makefile.am (libebook_1_2_la_LDFLAGS)
+	* libedata-book/Makefile.am (libedata_book_1_2_la_LDFLAGS): Add
+	NO_UNDEFINED.
+
+	* libebook/e-book-view-listener.c: Don't include <pthread.h>. In
+	the (normally not even compiled) debugging output print the value
+	of g_thread_self() instead of pthread_self().
+
+	* libebook/e-book.c: Use GThread API instead of pthreads to start
+	the mainloop thread.
+
+	* libedata-book/e-book-backend-summary.c: Drop inclusion of
+	<netinet/in.h>. Use g_ntoh*() and g_hton*().
+
 2005-05-20  Ross Burton  <ross burtonini com>
 
Index: addressbook/backends/file/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/file/Makefile.am,v
retrieving revision 1.8
diff -p -u -2 -r1.8 Makefile.am
--- addressbook/backends/file/Makefile.am	31 Jan 2005 22:42:33 -0000	1.8
+++ addressbook/backends/file/Makefile.am	24 May 2005 08:31:21 -0000
@@ -16,7 +16,10 @@ libebookbackendfile_la_SOURCES =			\
 
 libebookbackendfile_la_LIBADD =						\
+	$(top_builddir)/addressbook/libebook/libebook-1.2.la		\
 	$(top_builddir)/addressbook/libedata-book/libedata-book-1.2.la	\
-	$(top_builddir)/libedataserver/libedataserver-1.2.la
+	$(top_builddir)/libedataserver/libedataserver-1.2.la		\
+	$(top_builddir)/libdb/dist/libdb-4.1.la				\
+	$(EVOLUTION_ADDRESSBOOK_LIBS)
 
 libebookbackendfile_la_LDFLAGS =	\
-	-module -avoid-version
+	-module -avoid-version $(NO_UNDEFINED)
Index: addressbook/backends/file/e-book-backend-file-factory.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/file/e-book-backend-file-factory.c,v
retrieving revision 1.4
diff -p -u -2 -r1.4 e-book-backend-file-factory.c
--- addressbook/backends/file/e-book-backend-file-factory.c	10 Jan 2005 12:12:43 -0000	1.4
+++ addressbook/backends/file/e-book-backend-file-factory.c	24 May 2005 08:31:21 -0000
@@ -26,5 +26,4 @@
 #endif
 
-#include <pthread.h>
 #include <string.h>
 
Index: addressbook/backends/file/e-book-backend-file.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/file/e-book-backend-file.c,v
retrieving revision 1.32
diff -p -u -2 -r1.32 e-book-backend-file.c
--- addressbook/backends/file/e-book-backend-file.c	20 May 2005 11:15:22 -0000	1.32
+++ addressbook/backends/file/e-book-backend-file.c	24 May 2005 08:31:22 -0000
@@ -148,8 +148,8 @@ set_revision (EContact *contact)
 	char time_string[25] = {0};
 	const struct tm *tm = NULL;
-	struct timeval tv;
+	GTimeVal tv;
 
-	if (!gettimeofday (&tv, NULL))
-		tm = gmtime (&tv.tv_sec);
+	g_get_current_time (&tv);
+	tm = gmtime (&tv.tv_sec);
 	if (tm)
 		strftime (time_string, 100, "%Y-%m-%dT%H:%M:%SZ", tm);
Index: addressbook/backends/groupwise/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/groupwise/Makefile.am,v
retrieving revision 1.8
diff -p -u -2 -r1.8 Makefile.am
--- addressbook/backends/groupwise/Makefile.am	31 Jan 2005 22:42:33 -0000	1.8
+++ addressbook/backends/groupwise/Makefile.am	24 May 2005 08:31:22 -0000
@@ -6,5 +6,5 @@ INCLUDES =						\
 	-I$(top_builddir)/addressbook			\
 	-I$(top_srcdir)/servers/groupwise               \
-	$(EVOLUTION_ADDRESSBOOK_CFLAGS)                \
+	$(EVOLUTION_ADDRESSBOOK_CFLAGS)                 \
 	$(SOUP_CFLAGS)	
 extension_LTLIBRARIES = libebookbackendgroupwise.la
@@ -15,10 +15,14 @@ libebookbackendgroupwise_la_SOURCES =			
 	e-book-backend-groupwise-factory.c
 
-libebookbackendgroupwise_la_LIBADD =						\
-	$(top_builddir)/servers/groupwise/libegroupwise-1.2.la
+libebookbackendgroupwise_la_LIBADD =					\
+	$(top_builddir)/servers/groupwise/libegroupwise-1.2.la		\
+	$(top_builddir)/addressbook/libebook/libebook-1.2.la		\
+	$(top_builddir)/addressbook/libedata-book/libedata-book-1.2.la	\
+	$(top_builddir)/libedataserver/libedataserver-1.2.la		\
+	$(EVOLUTION_ADDRESSBOOK_LIBS)					\
 	$(SOUP_LIBS)
 
 libebookbackendgroupwise_la_LDFLAGS =		\
-	-module -avoid-version
+	-module -avoid-version $(NO_UNDEFINED)
 
 noinst_PROGRAMS = create-account
Index: addressbook/backends/ldap/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/ldap/Makefile.am,v
retrieving revision 1.7
diff -p -u -2 -r1.7 Makefile.am
--- addressbook/backends/ldap/Makefile.am	31 Jan 2005 22:42:34 -0000	1.7
+++ addressbook/backends/ldap/Makefile.am	24 May 2005 08:31:22 -0000
@@ -21,5 +21,5 @@ libebookbackendldap_la_LIBADD =						\
 
 libebookbackendldap_la_LDFLAGS =	\
-	-module -avoid-version
+	-module -avoid-version $(NO_UNDEFINED)
 
 LDAP_SCHEMA =						\
Index: addressbook/backends/vcf/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/vcf/Makefile.am,v
retrieving revision 1.7
diff -p -u -2 -r1.7 Makefile.am
--- addressbook/backends/vcf/Makefile.am	31 Jan 2005 22:42:34 -0000	1.7
+++ addressbook/backends/vcf/Makefile.am	24 May 2005 08:31:22 -0000
@@ -15,7 +15,9 @@ libebookbackendvcf_la_SOURCES =			\
 
 libebookbackendvcf_la_LIBADD =						\
+	$(top_builddir)/addressbook/libebook/libebook-1.2.la		\
 	$(top_builddir)/addressbook/libedata-book/libedata-book-1.2.la	\
-	$(top_builddir)/libedataserver/libedataserver-1.2.la
+	$(top_builddir)/libedataserver/libedataserver-1.2.la		\
+	$(EVOLUTION_ADDRESSBOOK_LIBS)
 
 libebookbackendvcf_la_LDFLAGS =		\
-	-module -avoid-version
+	-module -avoid-version $(NO_UNDEFINED)
Index: addressbook/backends/vcf/e-book-backend-vcf.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/vcf/e-book-backend-vcf.c,v
retrieving revision 1.16
diff -p -u -2 -r1.16 e-book-backend-vcf.c
--- addressbook/backends/vcf/e-book-backend-vcf.c	9 May 2005 13:22:55 -0000	1.16
+++ addressbook/backends/vcf/e-book-backend-vcf.c	24 May 2005 08:31:23 -0000
@@ -205,8 +205,8 @@ set_revision (EContact *contact)
 	char time_string[25] = {0};
 	const struct tm *tm = NULL;
-	struct timeval tv;
+	GTimeVal tv;
 
-	if (!gettimeofday (&tv, NULL))
-		tm = gmtime (&tv.tv_sec);
+	g_get_current_time (&tv);
+	tm = gmtime (&tv.tv_sec);
 	if (tm)
 		strftime (time_string, 100, "%Y-%m-%dT%H:%M:%SZ", tm);
Index: addressbook/libebook/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libebook/Makefile.am,v
retrieving revision 1.12
diff -p -u -2 -r1.12 Makefile.am
--- addressbook/libebook/Makefile.am	11 Apr 2005 12:21:27 -0000	1.12
+++ addressbook/libebook/Makefile.am	24 May 2005 08:31:23 -0000
@@ -54,5 +54,5 @@ libebook_1_2_la_LIBADD =					\
 
 libebook_1_2_la_LDFLAGS = 							\
-	-version-info $(LIBEBOOK_CURRENT):$(LIBEBOOK_REVISION):$(LIBEBOOK_AGE)
+	-version-info $(LIBEBOOK_CURRENT):$(LIBEBOOK_REVISION):$(LIBEBOOK_AGE) $(NO_UNDEFINED)
 
 libebookincludedir = $(privincludedir)/libebook
Index: addressbook/libebook/e-book-view-listener.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libebook/e-book-view-listener.c,v
retrieving revision 1.10
diff -p -u -2 -r1.10 e-book-view-listener.c
--- addressbook/libebook/e-book-view-listener.c	4 May 2005 08:46:12 -0000	1.10
+++ addressbook/libebook/e-book-view-listener.c	24 May 2005 08:31:23 -0000
@@ -11,5 +11,4 @@
 
 #include <config.h>
-#include <pthread.h>
 #include <bonobo/bonobo-main.h>
 #include "e-book-view-listener.h"
@@ -198,5 +197,5 @@ impl_BookViewListener_notify_contacts_ad
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object (servant));
 
-	d(printf ("%p: impl_BookViewListener_notify_contacts_added (%p)\n", pthread_self(), listener));
+	d(printf ("%p: impl_BookViewListener_notify_contacts_added (%p)\n", g_thread_self(), listener));
 
 	e_book_view_listener_queue_sequence_event (
@@ -211,5 +210,5 @@ impl_BookViewListener_notify_contacts_re
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object (servant));
 
-	d(printf ("%p: impl_BookViewListener_notify_contacts_removed (%p)\n", pthread_self(), listener));
+	d(printf ("%p: impl_BookViewListener_notify_contacts_removed (%p)\n", g_thread_self(), listener));
 
 	e_book_view_listener_queue_idlist_event (listener, ContactsRemovedEvent, ids);
@@ -223,5 +222,5 @@ impl_BookViewListener_notify_contacts_ch
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object (servant));
 
-	d(printf ("%p: impl_BookViewListener_notify_contacts_changed (%p)\n", pthread_self(), listener));
+	d(printf ("%p: impl_BookViewListener_notify_contacts_changed (%p)\n", g_thread_self(), listener));
 
 	e_book_view_listener_queue_sequence_event (
@@ -236,5 +235,5 @@ impl_BookViewListener_notify_sequence_co
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object (servant));
 
-	d(printf ("%p: impl_BookViewListener_notify_sequence_complete (%p)\n", pthread_self(), listener));
+	d(printf ("%p: impl_BookViewListener_notify_sequence_complete (%p)\n", g_thread_self(), listener));
 
 	e_book_view_listener_queue_status_event (listener, SequenceCompleteEvent,
@@ -250,5 +249,5 @@ impl_BookViewListener_notify_progress (P
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (bonobo_object (servant));
 
-	d(printf ("%p: impl_BookViewListener_notify_progress (%p,`%s')\n", pthread_self(), listener, message));
+	d(printf ("%p: impl_BookViewListener_notify_progress (%p,`%s')\n", g_thread_self(), listener, message));
 
 	e_book_view_listener_queue_message_event (listener, StatusMessageEvent, message);
@@ -320,5 +319,5 @@ e_book_view_listener_start (EBookViewLis
 {
 	g_return_if_fail (E_IS_BOOK_VIEW_LISTENER (listener));
-	d(printf ("%p: e_book_view_listener_start (%p)\n", pthread_self(), listener));
+	d(printf ("%p: e_book_view_listener_start (%p)\n", g_thread_self(), listener));
 	listener->priv->stopped = FALSE;
 }
@@ -334,5 +333,5 @@ e_book_view_listener_stop (EBookViewList
 {
 	g_return_if_fail (E_IS_BOOK_VIEW_LISTENER (listener));
-	d(printf ("%p: e_book_view_listener_stop (%p)\n", pthread_self(), listener));
+	d(printf ("%p: e_book_view_listener_stop (%p)\n", g_thread_self(), listener));
 	listener->priv->stopped = TRUE;
 
@@ -348,5 +347,5 @@ e_book_view_listener_dispose (GObject *o
 	EBookViewListener *listener = E_BOOK_VIEW_LISTENER (object);
 
-	d(printf ("%p: in e_book_view_listener_dispose (%p)\n", pthread_self(), object));
+	d(printf ("%p: in e_book_view_listener_dispose (%p)\n", g_thread_self(), object));
 
 	if (listener->priv) {
Index: addressbook/libebook/e-book.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libebook/e-book.c,v
retrieving revision 1.52
diff -p -u -2 -r1.52 e-book.c
--- addressbook/libebook/e-book.c	4 May 2005 08:46:12 -0000	1.52
+++ addressbook/libebook/e-book.c	24 May 2005 08:31:24 -0000
@@ -3,6 +3,4 @@
 #include <config.h>
 
-#include <pthread.h>
-
 #include <string.h>
 
@@ -3721,5 +3719,5 @@ e_book_activate()
 	g_static_mutex_lock (&e_book_lock);
 	if (!activated) {
-		pthread_t ebook_mainloop_thread;
+		GThread *ebook_mainloop_thread;
 		activated = TRUE;
 
@@ -3729,5 +3727,5 @@ e_book_activate()
 			bonobo_init (NULL, NULL);
 
-		pthread_create(&ebook_mainloop_thread, NULL, startup_mainloop, NULL);
+		ebook_mainloop_thread = g_thread_create(startup_mainloop, NULL, FALSE, NULL);
 	}
 	g_static_mutex_unlock (&e_book_lock);
Index: addressbook/libedata-book/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/Makefile.am,v
retrieving revision 1.13
diff -p -u -2 -r1.13 Makefile.am
--- addressbook/libedata-book/Makefile.am	11 Apr 2005 12:21:27 -0000	1.13
+++ addressbook/libedata-book/Makefile.am	24 May 2005 08:31:24 -0000
@@ -51,6 +51,6 @@ libedata_book_1_2_la_LIBADD =					\
 	$(top_builddir)/libedataserver/libedataserver-1.2.la
 
-libedata_book_1_2_la_LDFLAGS = 									\
-	-version-info $(LIBEDATABOOK_CURRENT):$(LIBEDATABOOK_REVISION):$(LIBEDATABOOK_AGE)
+libedata_book_1_2_la_LDFLAGS = \
+	-version-info $(LIBEDATABOOK_CURRENT):$(LIBEDATABOOK_REVISION):$(LIBEDATABOOK_AGE) $(NO_UNDEFINED)
 
 libedata_bookincludedir = $(privincludedir)/libedata-book
Index: addressbook/libedata-book/e-book-backend-factory.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-book-backend-factory.c,v
retrieving revision 1.4
diff -p -u -2 -r1.4 e-book-backend-factory.c
--- addressbook/libedata-book/e-book-backend-factory.c	14 May 2005 06:36:46 -0000	1.4
+++ addressbook/libedata-book/e-book-backend-factory.c	24 May 2005 08:31:24 -0000
@@ -12,5 +12,4 @@
 #endif
 
-#include <pthread.h>
 #include <string.h>
 
Index: addressbook/libedata-book/e-book-backend-summary.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-book-backend-summary.c,v
retrieving revision 1.8
diff -p -u -2 -r1.8 e-book-backend-summary.c
--- addressbook/libedata-book/e-book-backend-summary.c	14 May 2005 06:36:46 -0000	1.8
+++ addressbook/libedata-book/e-book-backend-summary.c	24 May 2005 08:31:25 -0000
@@ -32,6 +32,4 @@
 #include <errno.h>
 
-#include <netinet/in.h>
-
 #include <libedataserver/e-sexp.h>
 #include <libedataserver/e-util.h>
@@ -284,5 +282,5 @@ e_book_backend_summary_load_header (EBoo
 		return FALSE;
 
-	header->file_version = ntohl (header->file_version);
+	header->file_version = g_ntohl (header->file_version);
 
 	if (header->file_version < PAS_SUMMARY_FILE_VERSION) {
@@ -294,10 +292,10 @@ e_book_backend_summary_load_header (EBoo
 		return FALSE;
 
-	header->num_items = ntohl (header->num_items);
+	header->num_items = g_ntohl (header->num_items);
 
 	rv = fread (&header->summary_mtime, sizeof (header->summary_mtime), 1, fp);
 	if (rv != 1)
 		return FALSE;
-	header->summary_mtime = ntohl (header->summary_mtime);
+	header->summary_mtime = g_ntohl (header->summary_mtime);
 
 	return TRUE;
@@ -335,14 +333,14 @@ e_book_backend_summary_load_item (EBookB
 			return FALSE;
 
-		disk_item.id_len = ntohs (disk_item.id_len);
-		disk_item.nickname_len = ntohs (disk_item.nickname_len);
-		disk_item.full_name_len = ntohs (disk_item.full_name_len);
-		disk_item.given_name_len = ntohs (disk_item.given_name_len);
-		disk_item.surname_len = ntohs (disk_item.surname_len);
-		disk_item.file_as_len = ntohs (disk_item.file_as_len);
-		disk_item.email_1_len = ntohs (disk_item.email_1_len);
-		disk_item.email_2_len = ntohs (disk_item.email_2_len);
-		disk_item.email_3_len = ntohs (disk_item.email_3_len);
-		disk_item.email_4_len = ntohs (disk_item.email_4_len);
+		disk_item.id_len = g_ntohs (disk_item.id_len);
+		disk_item.nickname_len = g_ntohs (disk_item.nickname_len);
+		disk_item.full_name_len = g_ntohs (disk_item.full_name_len);
+		disk_item.given_name_len = g_ntohs (disk_item.given_name_len);
+		disk_item.surname_len = g_ntohs (disk_item.surname_len);
+		disk_item.file_as_len = g_ntohs (disk_item.file_as_len);
+		disk_item.email_1_len = g_ntohs (disk_item.email_1_len);
+		disk_item.email_2_len = g_ntohs (disk_item.email_2_len);
+		disk_item.email_3_len = g_ntohs (disk_item.email_3_len);
+		disk_item.email_4_len = g_ntohs (disk_item.email_4_len);
 
 		item = g_new0 (EBookBackendSummaryItem, 1);
@@ -569,7 +567,7 @@ e_book_backend_summary_save_header (EBoo
 	int rv;
 
-	header.file_version = htonl (PAS_SUMMARY_FILE_VERSION);
-	header.num_items = htonl (summary->priv->items->len);
-	header.summary_mtime = htonl (time (NULL));
+	header.file_version = g_htonl (PAS_SUMMARY_FILE_VERSION);
+	header.num_items = g_htonl (summary->priv->items->len);
+	header.summary_mtime = g_htonl (time (NULL));
 
 	rv = fwrite (&header, sizeof (header), 1, fp);
@@ -600,32 +598,32 @@ e_book_backend_summary_save_item (EBookB
 
 	len = item->id ? strlen (item->id) : 0;
-	disk_item.id_len = htons (len);
+	disk_item.id_len = g_htons (len);
 
 	len = item->nickname ? strlen (item->nickname) : 0;
-	disk_item.nickname_len = htons (len);
+	disk_item.nickname_len = g_htons (len);
 
 	len = item->given_name ? strlen (item->given_name) : 0;
-	disk_item.given_name_len = htons (len);
+	disk_item.given_name_len = g_htons (len);
 
 	len = item->full_name ? strlen (item->full_name) : 0;
-	disk_item.full_name_len = htons (len);
+	disk_item.full_name_len = g_htons (len);
 
 	len = item->surname ? strlen (item->surname) : 0;
-	disk_item.surname_len = htons (len);
+	disk_item.surname_len = g_htons (len);
 
 	len = item->file_as ? strlen (item->file_as) : 0;
-	disk_item.file_as_len = htons (len);
+	disk_item.file_as_len = g_htons (len);
 
 	len = item->email_1 ? strlen (item->email_1) : 0;
-	disk_item.email_1_len = htons (len);
+	disk_item.email_1_len = g_htons (len);
 
 	len = item->email_2 ? strlen (item->email_2) : 0;
-	disk_item.email_2_len = htons (len);
+	disk_item.email_2_len = g_htons (len);
 
 	len = item->email_3 ? strlen (item->email_3) : 0;
-	disk_item.email_3_len = htons (len);
+	disk_item.email_3_len = g_htons (len);
 
 	len = item->email_4 ? strlen (item->email_4) : 0;
-	disk_item.email_4_len = htons (len);
+	disk_item.email_4_len = g_htons (len);
 
 	disk_item.wants_html = item->wants_html;
Index: addressbook/libedata-book/e-book-backend.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-book-backend.c,v
retrieving revision 1.13
diff -p -u -2 -r1.13 e-book-backend.c
--- addressbook/libedata-book/e-book-backend.c	14 May 2005 06:36:47 -0000	1.13
+++ addressbook/libedata-book/e-book-backend.c	24 May 2005 08:31:25 -0000
@@ -8,5 +8,5 @@
 
 #include <config.h>
-#include <pthread.h>
+
 #include "e-data-book-marshal.h"
 #include "e-data-book-view.h"
Index: addressbook/libedata-book/e-data-book-factory.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-data-book-factory.c,v
retrieving revision 1.11
diff -p -u -2 -r1.11 e-data-book-factory.c
--- addressbook/libedata-book/e-data-book-factory.c	14 May 2005 06:36:47 -0000	1.11
+++ addressbook/libedata-book/e-data-book-factory.c	24 May 2005 08:31:26 -0000
@@ -12,5 +12,4 @@
 #endif
 
-#include <pthread.h>
 #include <string.h>
 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]