diff options
| author | Pav Lucistnik <pav@FreeBSD.org> | 2007-06-04 22:29:29 +0000 |
|---|---|---|
| committer | Pav Lucistnik <pav@FreeBSD.org> | 2007-06-04 22:29:29 +0000 |
| commit | 2a1722100b03067ae774395768c0c16ce37d8308 (patch) | |
| tree | 3017d35b26a342938e5740cbf05a930211980e4f /sysutils/fileschanged/files/patch-handlers.c | |
| parent | Update 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.c | 28 |
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) |
