diff options
Diffstat (limited to 'src/fe-common')
-rw-r--r-- | src/fe-common/core/fe-exec.c | 6 | ||||
-rw-r--r-- | src/fe-common/core/fe-exec.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/fe-common/core/fe-exec.c b/src/fe-common/core/fe-exec.c index ad018aa7..4b7c9ae0 100644 --- a/src/fe-common/core/fe-exec.c +++ b/src/fe-common/core/fe-exec.c @@ -497,6 +497,7 @@ static void handle_exec(const char *args, GHashTable *optlist, rec->args = g_strdup(args); rec->notice = notice; rec->silent = g_hash_table_lookup(optlist, "-") != NULL; + rec->quiet = g_hash_table_lookup(optlist, "quiet") != NULL; rec->name = g_strdup(g_hash_table_lookup(optlist, "name")); level = g_hash_table_lookup(optlist, "level"); @@ -571,6 +572,9 @@ static void sig_exec_input(PROCESS_REC *rec, const char *text) SERVER_REC *server; char *str; + if (rec->quiet) + return; + item = NULL; server = NULL; @@ -619,7 +623,7 @@ static void event_text(const char *data, SERVER_REC *server, EXEC_WI_REC *item) void fe_exec_init(void) { command_bind("exec", NULL, (SIGNAL_FUNC) cmd_exec); - command_set_options("exec", "!- interactive nosh +name out +msg +notice +in window close +level"); + command_set_options("exec", "!- interactive nosh +name out +msg +notice +in window close +level quiet"); signal_exec_input = signal_get_uniq_id("exec input"); signal_add("pidwait", (SIGNAL_FUNC) sig_pidwait); diff --git a/src/fe-common/core/fe-exec.h b/src/fe-common/core/fe-exec.h index a3b7edee..606b2302 100644 --- a/src/fe-common/core/fe-exec.h +++ b/src/fe-common/core/fe-exec.h @@ -38,6 +38,7 @@ struct PROCESS_REC { unsigned int shell:1; /* start the program via /bin/sh */ unsigned int notice:1; /* send text with /notice, not /msg if target is set */ unsigned int silent:1; /* don't print "process exited with level xx" */ + unsigned int quiet:1; /* don't print process output at all */ unsigned int target_channel:1; /* target is a channel */ unsigned int target_nick:1; /* target is a nick */ }; |