From c70e2b40ef0bb3bf49c22234f31c21a6f08932ae Mon Sep 17 00:00:00 2001
From: Dan Egnor <egnor@ofb.net>
Date: Sun, 25 Mar 2001 00:03:43 +0000
Subject: [PATCH] dangermouse changes...

---
 Makefile.am  |  8 ++++++--
 alloc.c      |  2 +-
 configure.in |  8 ++++----
 oop.h        |  5 +++--
 sys.c        |  5 ++++-
 test-oop.c   | 26 ++++++++++++++------------
 6 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index d707d93..deead5d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@
 # See the file COPYING for details.
 
 AUTOMAKE_OPTIONS = foreign 1.2
-lib_LTLIBRARIES = liboop.la liboop-adns.la liboop-glib.la liboop-www.la liboop-rl.la
+lib_LTLIBRARIES = liboop-adns.la liboop-glib.la liboop-www.la liboop-rl.la liboop.la
 INCLUDES = $(GLIB_INCLUDES) $(WWW_INCLUDES)
 
 # versions updated as of 0.7
@@ -15,15 +15,19 @@ liboop_la_LDFLAGS = -version-info 3:0:0 # version:revision:age
 liboop_la_SOURCES = sys.c select.c signal.c alloc.c read.c read-fd.c read-mem.c
 
 liboop_adns_la_LDFLAGS = -version-info 1:0:1
+liboop_adns_la_LIBADD = $(ADNS_LIBS)
 liboop_adns_la_SOURCES = adns.c
 
 liboop_glib_la_LDFLAGS = -version-info 0:0:0
+liboop_glib_la_LIBADD = $(GLIB_LIBS)
 liboop_glib_la_SOURCES = glib.c
 
 liboop_www_la_LDFLAGS = -version-info 0:0:0
+liboop_www_la_LIBADD = $(WWW_LIBS)
 liboop_www_la_SOURCES = www.c
 
 liboop_rl_la_LDFLAGS = -version-info 0:0:0
+liboop_rl_la_LIBADD = $(READLINE_LIBS)
 liboop_rl_la_SOURCES = readline.c
 
 include_HEADERS = oop.h oop-adns.h oop-glib.h oop-www.h oop-rl.h
@@ -31,7 +35,7 @@ include_HEADERS = oop.h oop-adns.h oop-glib.h oop-www.h oop-rl.h
 noinst_PROGRAMS = test-oop
 
 test_oop_SOURCES = test-oop.c
-test_oop_LDADD = $(ADNS_LIBS) $(GLIB_LIBS) $(WWW_LIBS) $(READLINE_LIBS) liboop.la
+test_oop_LDADD = $(lib_LTLIBRARIES)
 
 release: dist
 	gzip -dc $(PACKAGE)-$(VERSION).tar.gz | bzip2 -9 \
diff --git a/alloc.c b/alloc.c
index 3a243e7..393bac8 100644
--- a/alloc.c
+++ b/alloc.c
@@ -5,4 +5,4 @@ void *(*oop_malloc)(size_t) = malloc;
 void (*oop_free)(void *) = free;
 void *(*oop_realloc)(void *,size_t) = realloc;
 
-int _oop_continue; /* this has to go somewhere */
+int _oop_continue,_oop_error; /* this has to go somewhere */
diff --git a/configure.in b/configure.in
index 169eae4..23ac539 100644
--- a/configure.in
+++ b/configure.in
@@ -27,20 +27,20 @@ esac
 AC_CHECK_HEADERS(poll.h sys/select.h)
 
 AC_CHECK_LIB(adns,adns_init,[
-  ADNS_LIBS="liboop-adns.la -ladns"
+  ADNS_LIBS="-ladns"
   AC_DEFINE(HAVE_ADNS)
 ])
 
 AC_CHECK_LIB(readline,rl_callback_handler_install,[
 AC_CHECK_HEADER(readline/readline.h,[
-  READLINE_LIBS="liboop-rl.la -lreadline"
+  READLINE_LIBS="-lreadline"
   AC_DEFINE(HAVE_READLINE)
 ])])
 
 AC_CHECK_PROG(PROG_GLIB_CONFIG,glib-config,glib-config)
 if test -n "$PROG_GLIB_CONFIG" ; then
   GLIB_INCLUDES="`glib-config --cflags`"
-  GLIB_LIBS="liboop-glib.la `glib-config --libs`"
+  GLIB_LIBS="`glib-config --libs`"
   AC_DEFINE(HAVE_GLIB)
 fi
 
@@ -48,7 +48,7 @@ fi
 AC_CHECK_LIB(wwwcore,HTEvent_setRegisterCallback,[
   AC_DEFINE(HAVE_WWW)
   # This is just a little unpleasant.
-  WWW_LIBS="liboop-www.la \
+  WWW_LIBS=" \
   -lwwwapp -lwwwcache -lwwwcore -lwwwdir -lwwwfile -lwwwftp -lwwwgopher \
   -lwwwhtml -lwwwhttp -lwwwinit -lwwwmime -lwwwmux -lwwwnews -lwwwstream \
   -lwwwtelnet -lwwwtrans -lwwwutils -lwwwxml -lwwwzip -lxmlparse -lxmltok -lmd5"
diff --git a/oop.h b/oop.h
index 2c2dd50..b25a08c 100644
--- a/oop.h
+++ b/oop.h
@@ -31,9 +31,10 @@ static const struct timeval OOP_TIME_NOW = { 0, 0 };
 #define OOP_NUM_SIGNALS 256
 
 /* Callbacks may return one of these */
-extern int _oop_continue; /* internal only */
+extern int _oop_continue,_oop_error; /* internal only */
 #define OOP_CONTINUE ((void *) &_oop_continue)
-#define OOP_HALT ((void *) NULL) /* (or any other value except OOP_CONTINUE) */
+#define OOP_ERROR ((void *) &_oop_error)
+#define OOP_HALT ((void *) NULL) /* (or any other value besides OOP_CONTINUE) */
 
 /* Callback function prototypes */
 typedef void *oop_call_fd(oop_source *,int fd,oop_event,void *);
diff --git a/sys.c b/sys.c
index 97bd3e3..8657569 100644
--- a/sys.c
+++ b/sys.c
@@ -326,7 +326,10 @@ void *oop_sys_run(oop_source_sys *sys) {
 
 		sys->do_jmp = 0;
 
-		if (0 > rv) break; /* Error in select(). */
+		if (0 > rv) { /* Error in select(). */
+			ret = OOP_ERROR;
+			break; 
+		}
 
 		if (sys->sig_active) {
 			sys->sig_active = 0;
diff --git a/test-oop.c b/test-oop.c
index d882f20..82c38d5 100644
--- a/test-oop.c
+++ b/test-oop.c
@@ -25,6 +25,20 @@
 GMainLoop *glib_loop;
 #endif
 
+#ifdef HAVE_WWW
+/* Yuck: */
+#define HAVE_CONFIG_H
+#undef PACKAGE
+#undef VERSION
+
+#include "oop.h"
+#include "HTEvent.h"
+#include "oop-www.h"
+
+#include "WWWLib.h"
+#include "WWWInit.h"
+#endif
+
 #ifdef HAVE_READLINE
 #include <readline/readline.h>
 #include "oop-rl.h"
@@ -257,18 +271,6 @@ static void add_adns(oop_source *src) {
 
 #ifdef HAVE_WWW
 
-/* Yuck: */
-#define HAVE_CONFIG_H
-#undef PACKAGE
-#undef VERSION
-
-#include "oop.h"
-#include "HTEvent.h"
-#include "oop-www.h"
-
-#include "WWWLib.h"
-#include "WWWInit.h"
-
 static int remaining = 0;
 
 static int on_print(const char *fmt,va_list args) {
-- 
GitLab