summaryrefslogtreecommitdiff
path: root/sysutils/fileschanged/files/patch-handlers.c
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2007-06-04 22:29:29 +0000
committerPav Lucistnik <pav@FreeBSD.org>2007-06-04 22:29:29 +0000
commit2a1722100b03067ae774395768c0c16ce37d8308 (patch)
tree3017d35b26a342938e5740cbf05a930211980e4f /sysutils/fileschanged/files/patch-handlers.c
parentUpdate to 0.03 (diff)
- Update to 0.6.5
Diffstat (limited to 'sysutils/fileschanged/files/patch-handlers.c')
-rw-r--r--sysutils/fileschanged/files/patch-handlers.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/sysutils/fileschanged/files/patch-handlers.c b/sysutils/fileschanged/files/patch-handlers.c
index 2903833803b8..967350d8e76f 100644
--- a/sysutils/fileschanged/files/patch-handlers.c
+++ b/sysutils/fileschanged/files/patch-handlers.c
@@ -1,39 +1,13 @@
--- src/handlers.c.orig Mon Feb 23 01:42:46 2004
+++ src/handlers.c Wed Jun 16 20:13:06 2004
-@@ -7,6 +7,11 @@
+@@ -7,6 +7,10 @@
#include "node.h"
#include "opts.h"
#include "wl.h"
+#if defined(__FreeBSD__)
-+#include <signal.h>
+#include "libgen.h"
+#endif
+
extern struct arguments_t arguments;
struct handler_t handlers[FC_HANDLER_MAX]=
{
-@@ -180,12 +185,24 @@
- }
- void show_event(enum handler_enum_t id, char *filename)
- {
-+ struct sigaction sa;
-+
-+ if (arguments.fileschanged.exec_command == NULL) {
- if (arguments.fileschanged.showaction)
- {
- fprintf(stdout, "%s ", handlers[id].name);
- }
- fprintf(stdout, "%s\n",filename);
- fflush(stdout);
-+ } else {
-+ sa.sa_handler = SIG_IGN;
-+ sa.sa_flags = SA_NOCLDWAIT;
-+ sigemptyset(&sa.sa_mask);
-+ sigaction(SIGCHLD, &sa, NULL);
-+ if (!fork()) {
-+ execlp(arguments.fileschanged.exec_command, arguments.fileschanged.exec_command, handlers[id].name, filename, NULL);
-+ }
-+ }
- return;
- }
- int handle_created_file(FAMConnection *c, void *list, enum handler_enum_t id, char *filename)