Only in libevent-1.1b: CHANGES
Only in libevent-1.1b: Makefile
diff -uwr libevent-1.1b-old/Makefile.am libevent-1.1b/Makefile.am
--- libevent-1.1b-old/Makefile.am	Wed Aug  9 22:16:35 2006
+++ libevent-1.1b/Makefile.am	Sat Sep  2 03:49:26 2006
@@ -1,6 +1,5 @@
 AUTOMAKE_OPTIONS = foreign no-dependencies
 
-SUBDIRS = . sample test
 
 EXTRA_DIST = acconfig.h event.h event-internal.h log.h evsignal.h event.3 \
 	kqueue.c epoll_sub.c epoll.c select.c rtsig.c poll.c signal.c \
@@ -20,8 +19,29 @@
 
 lib_LTLIBRARIES = libevent.la
 
-libevent_la_SOURCES = event.c buffer.c evbuffer.c log.c
-libevent_la_LIBADD = @LTLIBOBJS@
+
+if BUILD_WIN32
+
+SUBDIRS = . sample
+SYS_LIBS = -lws2_32
+SYS_SRC = WIN32-Code/misc.c WIN32-Code/win32.c 
+
+else
+
+SUBDIRS = . sample test
+SYS_LIBS = 
+SYS_SRC = 
+
+endif
+
+if USE_CUSTOM_CODE
+CUST_SRC = custom/custom.c
+else
+CUST_SRC = 
+endif
+
+libevent_la_SOURCES = event.c buffer.c evbuffer.c log.c $(CUST_SRC) $(SYS_SRC)
+libevent_la_LIBADD = @LTLIBOBJS@ $(SYS_LIBS)
 libevent_la_LDFLAGS = -release @VERSION@ -version-info 1:2:0
 
 include_HEADERS = event.h
Only in libevent-1.1b: Makefile.in
diff -uwr libevent-1.1b-old/WIN32-Code/misc.c libevent-1.1b/WIN32-Code/misc.c
--- libevent-1.1b-old/WIN32-Code/misc.c	Wed Aug  9 21:01:14 2006
+++ libevent-1.1b/WIN32-Code/misc.c	Fri Sep  1 22:21:31 2006
@@ -4,6 +4,12 @@
 #include <sys/timeb.h>
 #include <time.h>
 
+#ifdef __GNUC__
+/*our prototypes for timeval and timezone are in here, just in case the above
+  headers don't have them*/
+#include "misc.h"
+#endif
+
 /****************************************************************************
  *
  * Function: gettimeofday(struct timeval *, struct timezone *)
diff -uwr libevent-1.1b-old/WIN32-Code/misc.h libevent-1.1b/WIN32-Code/misc.h
--- libevent-1.1b-old/WIN32-Code/misc.h	Wed Aug  9 21:01:14 2006
+++ libevent-1.1b/WIN32-Code/misc.h	Fri Sep  1 18:47:09 2006
@@ -1,6 +1,9 @@
 #ifndef MISC_H
 #define MISC_H
 
+struct timezone;
+struct timeval;
+
 int gettimeofday(struct timeval *,struct timezone *);
 
 #endif
diff -uwr libevent-1.1b-old/WIN32-Code/win32.c libevent-1.1b/WIN32-Code/win32.c
--- libevent-1.1b-old/WIN32-Code/win32.c	Wed Aug  9 21:25:48 2006
+++ libevent-1.1b/WIN32-Code/win32.c	Sat Sep  2 00:45:55 2006
@@ -60,7 +60,8 @@
 /* MSDN says this is required to handle SIGFPE */
 volatile double SIGFPE_REQ = 0.0f;
 
-int signal_handler(int sig);
+static int signal_handler(int sig);
+
 void signal_process(void);
 int signal_recalc(void);
 
@@ -77,20 +78,21 @@
 };
 
 void *win32_init	(void);
-int win32_insert	(void *, struct event *);
-int win32_del	(void *, struct event *);
+int win32_insert	(struct win32op *, struct event *);
+int win32_del		(struct win32op *, struct event *);
 int win32_recalc	(struct event_base *base, void *, int);
-int win32_dispatch	(struct event_base *base, void *, struct timeval *);
+int win32_dispatch	(struct event_base *base, struct win32op *, struct timeval *);
 
 struct eventop win32ops = {
 	"win32",
 	win32_init,
-	win32_insert,
-	win32_del,
+	(int (*) (void*, struct event*)) win32_insert,
+	(int (*) (void*, struct event*)) win32_del,
 	win32_recalc,
-	win32_dispatch
+	(int (*) (struct event_base*, void*, struct timeval*)) win32_dispatch
 };
 
+
 #define FD_SET_ALLOC_SIZE(n) ((sizeof(struct win_fd_set) + ((n)-1)*sizeof(SOCKET)))
 
 static int
@@ -213,7 +215,13 @@
 		if (ev->ev_events & (EV_READ|EV_WRITE))
 			event_errx(1, "%s: EV_SIGNAL incompatible use",
 			           __func__);
+
+#ifndef __GNUC__
 		if((int)signal(EVENT_SIGNAL(ev), signal_handler) == -1)
+#else
+		if((int)signal(EVENT_SIGNAL(ev), (void*) signal_handler) == -1)
+#endif
+
 			return (-1);
 
 		return (0);
@@ -382,8 +390,13 @@
 
 	/* Reinstall our signal handler. */
 	TAILQ_FOREACH(ev, &signalqueue, ev_signal_next) {
+#ifndef __GNUC__
 		if((int)signal(EVENT_SIGNAL(ev), signal_handler) == -1)
+#else
+		if((int)signal(EVENT_SIGNAL(ev), (void*) signal_handler) == -1)
+#endif
 			return (-1);
+
 	}
 	return (0);
 }
Only in libevent-1.1b-old/: aclocal.m4
Only in libevent-1.1b: autom4te.cache
diff -uwr libevent-1.1b-old/buffer.c libevent-1.1b/buffer.c
--- libevent-1.1b-old/buffer.c	Wed Aug  9 22:01:40 2006
+++ libevent-1.1b/buffer.c	Fri Sep  1 18:52:56 2006
@@ -197,7 +197,7 @@
 	u_char *data = EVBUFFER_DATA(buffer);
 	size_t len = EVBUFFER_LENGTH(buffer);
 	char *line;
-	u_int i;
+	unsigned int i;
 
 	for (i = 0; i < len; i++) {
 		if (data[i] == '\r' || data[i] == '\n')
Only in libevent-1.1b: config.guess
Only in libevent-1.1b: config.h
diff -uwr libevent-1.1b-old/config.h.in libevent-1.1b/config.h.in
--- libevent-1.1b-old/config.h.in	Wed Aug  9 21:27:37 2006
+++ libevent-1.1b/config.h.in	Sat Sep  2 02:23:17 2006
@@ -223,6 +223,9 @@
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
+/* Define to 1 if you want to use a custom eventops variable */
+#undef USE_CUSTOM_EVENTOPS
+
 /* Version number of package */
 #undef VERSION
 
@@ -232,11 +235,9 @@
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
+/* Define as `__inline' if that's what the C compiler calls it, or to nothing
+   if it is not supported. */
 #undef inline
-#endif
 
 /* Define to `int' if <sys/types.h> does not define. */
 #undef pid_t
Only in libevent-1.1b: config.h.in~
Only in libevent-1.1b: config.log
Only in libevent-1.1b: config.status
Only in libevent-1.1b: configure
diff -uwr libevent-1.1b-old/configure.in libevent-1.1b/configure.in
--- libevent-1.1b-old/configure.in	Wed Aug  9 22:05:17 2006
+++ libevent-1.1b/configure.in	Sat Sep  2 03:40:15 2006
@@ -21,6 +21,18 @@
         CFLAGS="$CFLAGS -Wall"
 fi
 
+AC_ARG_ENABLE(custom-eventops,
+		[  --enable-custom-eventops   Use custom eventops variable],
+		AC_DEFINE([USE_CUSTOM_EVENTOPS],[1],
+					[Define to 1 to use a custom eventops variable])
+		,)
+AC_ARG_ENABLE(custom-code,
+		[  --enable-custom-code       Use custom code from custom/],
+		customcodev=true,
+		customcodev=false)
+
+AM_CONDITIONAL(USE_CUSTOM_CODE, test x$customcodev = xtrue)
+
 AC_PROG_LIBTOOL
 
 dnl   Uncomment "AC_DISABLE_SHARED" to make shared librraries not get
@@ -110,6 +122,22 @@
 	  AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no)
 )
 fi
+
+dnl - check if the macro WIN32 is defined on this compiler.
+dnl - (this is how we check for a windows version of GCC)
+AC_MSG_CHECKING(for WIN32)
+AC_TRY_COMPILE(,
+	[
+	#ifndef WIN32
+	#error
+	#endif
+	],
+	bwin32=true; AC_MSG_RESULT(yes),
+	bwin32=false; AC_MSG_RESULT(no),
+)
+
+AM_CONDITIONAL(BUILD_WIN32, test x$bwin32 = xtrue)
+
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
diff -uwr libevent-1.1b-old/evbuffer.c libevent-1.1b/evbuffer.c
--- libevent-1.1b-old/evbuffer.c	Wed Aug  9 21:01:14 2006
+++ libevent-1.1b/evbuffer.c	Fri Sep  1 19:18:13 2006
@@ -154,12 +154,20 @@
 	if (EVBUFFER_LENGTH(bufev->output)) {
 	    res = evbuffer_write(bufev->output, fd);
 	    if (res == -1) {
+#ifndef WIN32
+/*todo. evbuffer uses WriteFile when WIN32 is set. WIN32 system calls do not
+ *set errno. thus this error checking is not portable*/
 		    if (errno == EAGAIN ||
 			errno == EINTR ||
 			errno == EINPROGRESS)
 			    goto reschedule;
 		    /* error case */
 		    what |= EVBUFFER_ERROR;
+
+#else
+				goto reschedule;
+#endif
+
 	    } else if (res == 0) {
 		    /* eof case */
 		    what |= EVBUFFER_EOF;
@@ -181,6 +189,7 @@
 	return;
 
  reschedule:
+
 	if (EVBUFFER_LENGTH(bufev->output) != 0)
 		bufferevent_add(&bufev->ev_write, bufev->timeout_write);
 	return;
diff -uwr libevent-1.1b-old/event.c libevent-1.1b/event.c
--- libevent-1.1b-old/event.c	Wed Aug  9 21:25:48 2006
+++ libevent-1.1b/event.c	Sat Sep  2 04:22:05 2006
@@ -30,8 +30,14 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #undef WIN32_LEAN_AND_MEAN
+
+#ifdef __GNUC__
+#include "WIN32-Code/misc.h"
+#else
 #include "misc.h"
 #endif
+
+#endif
 #include <sys/types.h>
 #include <sys/tree.h>
 #ifdef HAVE_SYS_TIME_H
@@ -53,6 +59,7 @@
 #include "event-internal.h"
 #include "log.h"
 
+
 #ifdef HAVE_SELECT
 extern const struct eventop selectops;
 #endif
@@ -75,6 +82,8 @@
 extern const struct eventop win32ops;
 #endif
 
+#ifndef USE_CUSTOM_EVENTOPS
+
 /* In order of preference */
 const struct eventop *eventops[] = {
 #ifdef HAVE_WORKING_KQUEUE
@@ -101,6 +110,11 @@
 	NULL
 };
 
+#else
+#include "custom-eventops.h"
+#endif //USE_CUSTOM_EVENTOPS
+
+
 /* Global state */
 struct event_list signalqueue;
 
Only in libevent-1.1b: libtool
diff -uwr libevent-1.1b-old/log.c libevent-1.1b/log.c
--- libevent-1.1b-old/log.c	Wed Aug  9 21:01:14 2006
+++ libevent-1.1b/log.c	Fri Sep  1 19:09:45 2006
@@ -45,8 +45,14 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #undef WIN32_LEAN_AND_MEAN
+
+#ifdef __GNUC__
+#include "WIN32-Code/misc.h"
+#else
 #include "misc.h"
 #endif
+
+#endif
 #include <sys/types.h>
 #include <sys/tree.h>
 #ifdef HAVE_SYS_TIME_H
Only in libevent-1.1b/sample: Makefile
Only in libevent-1.1b/sample: Makefile.in
Only in libevent-1.1b: stamp-h1
Only in libevent-1.1b/test: Makefile
Only in libevent-1.1b/test: Makefile.in
