summaryrefslogtreecommitdiff
path: root/src/fe-common/irc
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-common/irc')
-rw-r--r--src/fe-common/irc/Makefile.am1
-rw-r--r--src/fe-common/irc/fe-common-irc.c5
-rw-r--r--src/fe-common/irc/fe-ignore.c284
-rw-r--r--src/fe-common/irc/module-formats.c8
-rw-r--r--src/fe-common/irc/module-formats.h10
5 files changed, 1 insertions, 307 deletions
diff --git a/src/fe-common/irc/Makefile.am b/src/fe-common/irc/Makefile.am
index 9e3055c1..759d017b 100644
--- a/src/fe-common/irc/Makefile.am
+++ b/src/fe-common/irc/Makefile.am
@@ -19,7 +19,6 @@ libfe_common_irc_a_SOURCES = \
fe-ctcp.c \
fe-events.c \
fe-events-numeric.c \
- fe-ignore.c \
fe-netjoin.c \
fe-netsplit.c \
fe-common-irc.c \
diff --git a/src/fe-common/irc/fe-common-irc.c b/src/fe-common/irc/fe-common-irc.c
index 8410623f..39c0a2c9 100644
--- a/src/fe-common/irc/fe-common-irc.c
+++ b/src/fe-common/irc/fe-common-irc.c
@@ -55,9 +55,6 @@ void fe_events_deinit(void);
void fe_events_numeric_init(void);
void fe_events_numeric_deinit(void);
-void fe_ignore_init(void);
-void fe_ignore_deinit(void);
-
void irc_completion_init(void);
void irc_completion_deinit(void);
@@ -105,7 +102,6 @@ void fe_common_irc_init(void)
fe_ctcp_init();
fe_events_init();
fe_events_numeric_init();
- fe_ignore_init();
fe_netsplit_init();
fe_netjoin_init();
irc_completion_init();
@@ -124,7 +120,6 @@ void fe_common_irc_deinit(void)
fe_ctcp_deinit();
fe_events_deinit();
fe_events_numeric_deinit();
- fe_ignore_deinit();
fe_netsplit_deinit();
fe_netjoin_deinit();
irc_completion_deinit();
diff --git a/src/fe-common/irc/fe-ignore.c b/src/fe-common/irc/fe-ignore.c
deleted file mode 100644
index 5869b3bc..00000000
--- a/src/fe-common/irc/fe-ignore.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- fe-ignore.c : irssi
-
- Copyright (C) 1999-2000 Timo Sirainen
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#include "module.h"
-#include "module-formats.h"
-#include "signals.h"
-#include "commands.h"
-#include "levels.h"
-#include "misc.h"
-
-#include "irc.h"
-#include "irc-servers.h"
-#include "ignore.h"
-
-static void fe_unignore(IGNORE_REC *rec);
-
-static char *ignore_get_key(IGNORE_REC *rec)
-{
- char *chans, *ret;
-
- if (rec->channels == NULL)
- return rec->mask != NULL ? g_strdup(rec->mask) : NULL;
-
- chans = g_strjoinv(",", rec->channels);
- if (rec->mask == NULL) return chans;
-
- ret = g_strdup_printf("%s %s", rec->mask, chans);
- g_free(chans);
- return ret;
-}
-
-static char *ignore_get_levels(int level, int xlevel)
-{
- GString *str;
- char *levelstr, *p, *ret;
-
- str = g_string_new(NULL);
- if (level != 0) {
- levelstr = bits2level(level);
- g_string_append(str, levelstr);
- g_free(levelstr);
- }
-
- if (xlevel != 0) {
- if (str->len > 0) g_string_append_c(str, ' ');
-
- levelstr = bits2level(xlevel);
- for (p = levelstr; *p != '\0'; p++) {
- if (!isspace(*p) && (p == levelstr || isspace(p[-1])))
- g_string_append_c(str, '^');
- g_string_append_c(str, *p);
- }
- g_free(levelstr);
- }
-
- ret = str->str;
- g_string_free(str, FALSE);
- return ret;
-}
-
-/* msgs ^notices : level=msgs, xlevel=notices */
-static void ignore_split_levels(const char *levels, int *level, int *xlevel)
-{
- GString *slevel, *sxlevel;
- char **levellist, **tmp;
-
- if (*levels == '\0') return;
-
- slevel = g_string_new(NULL);
- sxlevel = g_string_new(NULL);
-
- levellist = g_strsplit(levels, " ", -1);
- for (tmp = levellist; *tmp != NULL; tmp++) {
- if (**tmp == '^')
- g_string_sprintfa(sxlevel, "%s ", (*tmp)+1);
- else if (**tmp == '-' && (*tmp)[1] == '^')
- g_string_sprintfa(sxlevel, "-%s ", (*tmp)+2);
- else
- g_string_sprintfa(slevel, "%s ", *tmp);
- }
- g_strfreev(levellist);
-
- *level = combine_level(*level, slevel->str);
- *xlevel = combine_level(*xlevel, sxlevel->str);
-
- g_string_free(slevel, TRUE);
- g_string_free(sxlevel, TRUE);
-}
-
-static void ignore_print(int index, IGNORE_REC *rec)
-{
- GString *options;
- char *key, *levels;
-
- key = ignore_get_key(rec);
- levels = ignore_get_levels(rec->level, rec->except_level);
-
- options = g_string_new(NULL);
- if (rec->regexp) g_string_sprintfa(options, "-regexp ");
- if (rec->fullword) g_string_sprintfa(options, "-word ");
- if (rec->replies) g_string_sprintfa(options, "-replies ");
- if (options->len > 1) g_string_truncate(options, options->len-1);
-
- printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
- IRCTXT_IGNORE_LINE, index,
- key != NULL ? key : "",
- levels != NULL ? levels : "", options->str);
- g_string_free(options, TRUE);
- g_free(key);
- g_free(levels);
-}
-
-static int unignore_timeout(IGNORE_REC *rec)
-{
- fe_unignore(rec);
- return FALSE;
-}
-
-static void cmd_ignore_show(void)
-{
- GSList *tmp;
- int index;
-
- printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, IRCTXT_IGNORE_HEADER);
- index = 1;
- for (tmp = ignores; tmp != NULL; tmp = tmp->next, index++) {
- IGNORE_REC *rec = tmp->data;
-
- ignore_print(index, rec);
- }
- printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, IRCTXT_IGNORE_FOOTER);
-}
-
-/* SYNTAX: IGNORE [-regexp | -word] [-pattern <pattern>] [-except] [-replies]
- [-channels <channel>] [-time <secs>] <mask> <levels>
- IGNORE [-regexp | -word] [-pattern <pattern>] [-except] [-replies]
- [-time <secs>] <channels> <levels> */
-static void cmd_ignore(const char *data)
-{
- GHashTable *optlist;
- IGNORE_REC *rec;
- char *patternarg, *chanarg, *mask, *levels, *key, *timestr;
- char **channels;
- void *free_arg;
- int new_ignore;
-
- if (*data == '\0') {
- cmd_ignore_show();
- return;
- }
-
- if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST,
- "ignore", &optlist, &mask, &levels))
- return;
-
- patternarg = g_hash_table_lookup(optlist, "pattern");
- chanarg = g_hash_table_lookup(optlist, "channels");
-
- if (*levels == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
- if (ischannel(*mask)) {
- chanarg = mask;
- mask = NULL;
- }
- channels = (chanarg == NULL || *chanarg == '\0') ? NULL :
- g_strsplit(replace_chars(chanarg, ',', ' '), " ", -1);
-
- rec = ignore_find(NULL, mask, channels);
- new_ignore = rec == NULL;
-
- if (rec == NULL) {
- rec = g_new0(IGNORE_REC, 1);
-
- rec->mask = (mask != NULL && *mask != '\0') ?
- g_strdup(mask) : NULL;
- rec->channels = channels;
- } else {
- g_free_and_null(rec->pattern);
- g_strfreev(channels);
- }
-
- if (g_hash_table_lookup(optlist, "except") != NULL) {
- rec->except_level = combine_level(rec->except_level, levels);
- } else {
- ignore_split_levels(levels, &rec->level, &rec->except_level);
- }
-
- rec->pattern = (patternarg == NULL || *patternarg == '\0') ?
- NULL : g_strdup(patternarg);
- rec->regexp = g_hash_table_lookup(optlist, "regexp") != NULL;
- rec->fullword = g_hash_table_lookup(optlist, "word") != NULL;
- rec->replies = g_hash_table_lookup(optlist, "replies") != NULL;
- timestr = g_hash_table_lookup(optlist, "time");
- rec->time = timestr == NULL ? 0 : atoi(timestr);
-
- if (rec->level == 0 && rec->except_level == 0) {
- printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_UNIGNORED,
- rec->mask == NULL ? "" : rec->mask);
- } else {
- key = ignore_get_key(rec);
- levels = ignore_get_levels(rec->level, rec->except_level);
- printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_IGNORED, key, levels);
- g_free(key);
- g_free(levels);
- }
-
- if (rec->time > 0)
- rec->time_tag = g_timeout_add(rec->time*1000, (GSourceFunc) unignore_timeout, rec);
-
- if (new_ignore)
- ignore_add_rec(rec);
- else
- ignore_update_rec(rec);
-
- cmd_params_free(free_arg);
-}
-
-static void fe_unignore(IGNORE_REC *rec)
-{
- char *key;
-
- key = ignore_get_key(rec);
- printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_UNIGNORED, key);
- g_free(key);
-
- rec->level = 0;
- rec->except_level = 0;
- ignore_update_rec(rec);
-}
-
-/* SYNTAX: UNIGNORE <id>|<mask> */
-static void cmd_unignore(const char *data)
-{
- IGNORE_REC *rec;
- GSList *tmp;
-
- if (is_numeric(data, ' ')) {
- /* with index number */
- tmp = g_slist_nth(ignores, atoi(data)-1);
- rec = tmp == NULL ? NULL : tmp->data;
- } else {
- /* with mask */
- const char *chans[2] = { "*", NULL };
-
- if (ischannel(*data)) chans[0] = data;
- rec = ignore_find("*", ischannel(*data) ? NULL : data, (char **) chans);
- }
-
- if (rec == NULL)
- printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_IGNORE_NOT_FOUND, data);
- else
- fe_unignore(rec);
-}
-
-void fe_ignore_init(void)
-{
- command_bind("ignore", NULL, (SIGNAL_FUNC) cmd_ignore);
- command_bind("unignore", NULL, (SIGNAL_FUNC) cmd_unignore);
-
- command_set_options("ignore", "regexp word except replies -time -pattern -channels");
-}
-
-void fe_ignore_deinit(void)
-{
- command_unbind("ignore", (SIGNAL_FUNC) cmd_ignore);
- command_unbind("unignore", (SIGNAL_FUNC) cmd_unignore);
-}
diff --git a/src/fe-common/irc/module-formats.c b/src/fe-common/irc/module-formats.c
index d5b44252..d71152f9 100644
--- a/src/fe-common/irc/module-formats.c
+++ b/src/fe-common/irc/module-formats.c
@@ -155,13 +155,5 @@ FORMAT_REC fecommon_irc_formats[] = {
{ "unsilenced", "Unsilenced %_$0%_", 1, { 0 } },
{ "silence_line", "%_$0%_: silence %c$1", 2, { 0, 0 } },
- { "ignored", "Ignoring %_$1%_ from %_$0%_", 2, { 0, 0 } },
- { "unignored", "Unignored %_$0%_", 1, { 0 } },
- { "ignore_not_found", "%_$0%_ is not being ignored", 1, { 0 } },
- { "ignore_no_ignores", "There are no ignores", 0 },
- { "ignore_header", "Ignorance List:", 0 },
- { "ignore_line", "$[-4]0 $1: $2 $3 $4", 4, { 1, 0, 0, 0 } },
- { "ignore_footer", "", 0 },
-
{ NULL, NULL, 0 }
};
diff --git a/src/fe-common/irc/module-formats.h b/src/fe-common/irc/module-formats.h
index f7111060..46e91322 100644
--- a/src/fe-common/irc/module-formats.h
+++ b/src/fe-common/irc/module-formats.h
@@ -123,15 +123,7 @@ enum {
IRCTXT_SILENCED,
IRCTXT_UNSILENCED,
- IRCTXT_SILENCE_LINE,
-
- IRCTXT_IGNORED,
- IRCTXT_UNIGNORED,
- IRCTXT_IGNORE_NOT_FOUND,
- IRCTXT_IGNORE_NO_IGNORES,
- IRCTXT_IGNORE_HEADER,
- IRCTXT_IGNORE_LINE,
- IRCTXT_IGNORE_FOOTER
+ IRCTXT_SILENCE_LINE
};
extern FORMAT_REC fecommon_irc_formats[];