exec: kill all processes using an exec buffer that is being closed

This commit is contained in:
Sébastien Helleu 2014-04-03 12:24:20 +02:00
parent d055d4a2bd
commit a470a1a890

View File

@ -72,9 +72,24 @@ exec_buffer_input_cb (void *data, struct t_gui_buffer *buffer,
int
exec_buffer_close_cb (void *data, struct t_gui_buffer *buffer)
{
const char *full_name;
struct t_exec_cmd *ptr_exec_cmd;
/* make C compiler happy */
(void) data;
(void) buffer;
/* kill any command whose output is on this buffer */
full_name = weechat_buffer_get_string (buffer, "full_name");
for (ptr_exec_cmd = exec_cmds; ptr_exec_cmd;
ptr_exec_cmd = ptr_exec_cmd->next_cmd)
{
if (ptr_exec_cmd->hook
&& ptr_exec_cmd->buffer_full_name
&& (strcmp (ptr_exec_cmd->buffer_full_name, full_name) == 0))
{
weechat_hook_set (ptr_exec_cmd->hook, "signal", "kill");
}
}
return WEECHAT_RC_OK;
}