void irc_redirect_pattern_free_all () { while (irc_redirect_patterns) { irc_redirect_pattern_free (irc_redirect_patterns); } }
struct t_irc_redirect * irc_redirect_new (struct t_irc_server *server, const char *pattern, const char *signal, int count, const char *string, int timeout, const char *cmd_filter) { struct t_irc_redirect_pattern *ptr_redirect_pattern; struct t_irc_redirect *new_redirect; if (!server->is_connected) { weechat_printf (NULL, _("%s%s: no connection to server \"%s\" for redirect"), weechat_prefix ("error"), IRC_PLUGIN_NAME, server->name); return NULL; } if (!pattern || !pattern[0]) { weechat_printf (NULL, _("%s%s: missing argument \"%s\" for redirect"), weechat_prefix ("error"), IRC_PLUGIN_NAME, "pattern"); return NULL; } if (!signal || !signal[0]) { weechat_printf (NULL, _("%s%s: missing argument \"%s\" for redirect"), weechat_prefix ("error"), IRC_PLUGIN_NAME, "signal"); return NULL; } ptr_redirect_pattern = irc_redirect_pattern_search (pattern); if (!ptr_redirect_pattern) { weechat_printf (NULL, _("%s%s: redirect pattern \"%s\" not found"), weechat_prefix ("error"), IRC_PLUGIN_NAME, pattern); return NULL; } new_redirect = irc_redirect_new_with_commands (server, pattern, signal, count, string, (timeout > 0) ? timeout : ptr_redirect_pattern->timeout, ptr_redirect_pattern->cmd_start, ptr_redirect_pattern->cmd_stop, ptr_redirect_pattern->cmd_extra, cmd_filter); /* * remove redirect pattern if it is temporary (created by external * plugin/script) */ if (new_redirect && ptr_redirect_pattern->temp_pattern) irc_redirect_pattern_free (ptr_redirect_pattern); return new_redirect; }