aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/bogo-junk-plugin/ChangeLog8
-rw-r--r--plugins/bogo-junk-plugin/Makefile.am3
-rw-r--r--plugins/bogo-junk-plugin/bf-junk-filter.c17
3 files changed, 25 insertions, 3 deletions
diff --git a/plugins/bogo-junk-plugin/ChangeLog b/plugins/bogo-junk-plugin/ChangeLog
index e4007d4525..b24ac0db6c 100644
--- a/plugins/bogo-junk-plugin/ChangeLog
+++ b/plugins/bogo-junk-plugin/ChangeLog
@@ -1,3 +1,11 @@
+2009-01-28 Tor Lillqvist <tml@novell.com>
+
+ * Makefile.am: Use -no-undefined on Windows. Link with libeutil.
+
+ * bf-junk-filter.c: Tentative port to Windows even though this
+ plugin isn't even compiled on Windows for now. Just for
+ completeness.
+
2008-12-15 srinivasa ragavan <sragavan@novell.com>
* makefile.am:
diff --git a/plugins/bogo-junk-plugin/Makefile.am b/plugins/bogo-junk-plugin/Makefile.am
index 886d60392d..24eb99fdd5 100644
--- a/plugins/bogo-junk-plugin/Makefile.am
+++ b/plugins/bogo-junk-plugin/Makefile.am
@@ -10,6 +10,9 @@ plugin_LTLIBRARIES = liborg-gnome-bogo-junk-plugin.la
liborg_gnome_bogo_junk_plugin_la_SOURCES = bf-junk-filter.c
liborg_gnome_bogo_junk_plugin_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+liborg_gnome_bogo_junk_plugin_la_LIBADD = \
+ $(GNOME_PLATFORM_LIBS) \
+ $(top_builddir)/e-util/libeutil.la
schemadir = $(GCONF_SCHEMA_FILE_DIR)
schema_in_files = bogo-junk-plugin.schemas.in
diff --git a/plugins/bogo-junk-plugin/bf-junk-filter.c b/plugins/bogo-junk-plugin/bf-junk-filter.c
index aca10643e8..848e4f4fb5 100644
--- a/plugins/bogo-junk-plugin/bf-junk-filter.c
+++ b/plugins/bogo-junk-plugin/bf-junk-filter.c
@@ -25,7 +25,6 @@
#include "config.h"
#endif
-#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
#include <errno.h>
@@ -34,6 +33,13 @@
#define G_LOG_DOMAIN "bf-junk-filter"
#include <glib.h>
+
+#ifndef G_OS_WIN32
+# include <sys/wait.h>
+#else
+# include <windows.h>
+#endif
+
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <e-util/e-plugin.h>
@@ -163,6 +169,7 @@ retry:
camel_stream_close (stream);
camel_object_unref (stream);
+#ifndef G_OS_WIN32
waitres = waitpid (child_pid, &status, 0);
if (waitres < 0 && errno == EINTR) {
/* child process is hanging... */
@@ -181,13 +188,17 @@ retry:
g_set_error (error, EM_JUNK_ERROR, -3, _("Wait for Bogofilter child process interrupted, terminating..."));
}
- g_spawn_close_pid (child_pid);
-
if (waitres >= 0 && WIFEXITED (status)) {
res = WEXITSTATUS (status);
} else {
res = BOGOFILTER_ERROR;
}
+#else
+ WaitForSingleObject (child_pid, INFINITE);
+ GetExitCodeProcess (child_pid, &res);
+#endif
+
+ g_spawn_close_pid (child_pid);
if (res < 0 || res > 2) {
if (!only_once) {