From da9fd56f718cbe7fb4ae9befe91b2532dad222f0 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 16 Nov 2000 21:34:42 +0000 Subject: [PATCH] Added some comments about redirection problems. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@840 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/irc-commands.c | 42 ++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/src/irc/core/irc-commands.c b/src/irc/core/irc-commands.c index 3b57807a..6ca760f7 100644 --- a/src/irc/core/irc-commands.c +++ b/src/irc/core/irc-commands.c @@ -496,11 +496,11 @@ static void cmd_whois(const char *data, IRC_SERVER_REC *server, /* do automatic /WHOWAS if any of the nicks wasn't found */ query = get_redirect_nicklist(query, &free_nick); - server_redirect_event(SERVER(server), query, 2, + server_redirect_event(SERVER(server), query, 3, "event 318", "event 318", 1, "event 402", event_402, -1, - "event 311", "whois event", 1, - "event 401", "whois not found", 1, NULL); + "event 401", "whois not found", 1, + "event 311", "whois event", 1, NULL); if (free_nick) g_free(query); cmd_params_free(free_arg); } @@ -931,12 +931,40 @@ static void sig_connected(IRC_SERVER_REC *server) { g_return_if_fail(server != NULL); - server_redirect_init((SERVER_REC *) server, "", 2, "event 318", "event 402", "event 401", + /* FIXME: these two aren't probably needed? this whole redirection + thing might need some rethinking :) */ + /* WHOIS */ + /*server_redirect_init(SERVER(server), "", 2, + "event 318", "event 402", "event 401", "event 301", "event 311", "event 312", "event 313", - "event 317", "event 319", NULL); + "event 317", "event 319", NULL);*/ - /* gui-gnome can use server_redirect_event() in who/list commands so - we can't use "command who" or list here.. */ + /* NICK */ + /*server_redirect_init(SERVER(server), "", 5, + "event nick", "event 433", "event 437", + "event 432", "event 438", NULL);*/ + + /* problem (doesn't really apply currently since there's no GUI): + + second argument of server_redirect_init() is the command that + generates the redirection automatically when it's called, but the + command handler doesn't really know about the redirection itself. + + every time the command is called, this redirection is generated. + this is a problem if the redirection is wanted sometimes but not + always. for example /WHO #channel could create a window with a + list of people in channel redirecting WHO's events to it's own use, + but /WHO -nogui #channel would use the default WHO handler which + doesn't know anything about redirection. with GUI /WHO the + redirection would be done twice then.. + + so the kludgy workaround currently is this: make the default + handler handle the redirection always.. when default WHO/LIST + handler is called, they call + server_redirect_default("bogus command who") or ..list.. + + this is really a problem if some script/plugin wants to override + some default command to use redirections.. */ server_redirect_init(SERVER(server), "bogus command who", 2, "event 401", "event 315", "event 352", NULL); server_redirect_init(SERVER(server), "bogus command list", 1, "event 321", "event 322", "event 323", NULL); }