summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorEmanuele Giaquinta <exg@irssi.org>2008-03-14 12:25:01 +0000
committerexg <exg@dbcabf3a-b0e7-0310-adc4-f8d773084564>2008-03-14 12:25:01 +0000
commitca1bb6a8ed0e763c7125bb27657b64b780da3caf (patch)
treeafa2e7e3774811aba7bfc8e7d08f0a37ef6a41b3 /src/core
parentdb5b348b5e1bd2efc57420039ceaec3cc0118241 (diff)
downloadirssi-ca1bb6a8ed0e763c7125bb27657b64b780da3caf.zip
Make ignore exceptions take precedence over ignores in all cases, as documented.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4764 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ignore.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/ignore.c b/src/core/ignore.c
index 5c7f08fe..a954443c 100644
--- a/src/core/ignore.c
+++ b/src/core/ignore.c
@@ -160,12 +160,13 @@ int ignore_check(SERVER_REC *server, const char *nick, const char *host,
if (len > best_mask) {
best_mask = len;
best_match = !rec->exception;
- } else if (len == best_mask && rec->pattern != NULL) {
- len = strlen(rec->pattern);
+ } else if (len == best_mask) {
+ len = rec->pattern == NULL ? 0 : strlen(rec->pattern);
if (len > best_patt) {
best_patt = len;
best_match = !rec->exception;
- }
+ } else if (len == best_patt && rec->exception)
+ best_match = 0;
}
}
}