aboutsummaryrefslogtreecommitdiff
path: root/src/action.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-08-05 07:22:10 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-08-05 07:22:10 +0000
commit3ec864159a1792df642a75611363c39fb1fd1cd3 (patch)
tree2441b71b8b443445b7bb1c5d4ac464e70679577f /src/action.c
parent6247f6269afff27ecfe2ca9650e151f440ec806a (diff)
enabled compilation with MinGW.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@469 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/action.c')
-rw-r--r--src/action.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/action.c b/src/action.c
index 3949770f..1d7dbd0c 100644
--- a/src/action.c
+++ b/src/action.c
@@ -35,7 +35,9 @@
#include <string.h>
#include <errno.h>
#include <sys/types.h>
-#include <sys/wait.h>
+#if HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
#include <signal.h>
#include <unistd.h>
@@ -688,6 +690,7 @@ static gboolean execute_actions(gchar *action, GSList *msg_list,
static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str,
Children *children)
{
+#ifdef G_OS_UNIX
gint chld_in[2], chld_out[2], chld_err[2], chld_status[2];
gchar *cmdline[4];
pid_t pid, gch_pid;
@@ -845,10 +848,14 @@ static ChildInfo *fork_child(gchar *cmd, const gchar *msg_str,
}
return child_info;
+#else
+ return NULL;
+#endif /* G_OS_UNIX */
}
static void kill_children_cb(GtkWidget *widget, gpointer data)
{
+#ifdef G_OS_UNIX
GSList *cur;
Children *children = (Children *) data;
ChildInfo *child_info;
@@ -859,6 +866,7 @@ static void kill_children_cb(GtkWidget *widget, gpointer data)
if (child_info->pid && kill(-child_info->pid, SIGTERM) < 0)
perror("kill");
}
+#endif /* G_OS_UNIX */
}
static gint wait_for_children(Children *children)
@@ -1156,7 +1164,9 @@ static void catch_status(gpointer data, gint source, GdkInputCondition cond)
c = read(source, &buf, 1);
debug_print("Child returned %c\n", buf);
+#ifdef G_OS_UNIX
waitpid(-child_info->pid, NULL, 0);
+#endif
childinfo_close_pipes(child_info);
child_info->pid = 0;