mirror of
https://github.com/irssi/irssi.git
synced 2024-09-01 04:14:16 -04:00
Merge pull request #79 from ailin-nemui/query-bounds
restore irc bound queries
This commit is contained in:
commit
ae5a9283ee
@ -6,7 +6,7 @@
|
||||
#define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */
|
||||
#define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */
|
||||
|
||||
#define IRSSI_ABI_VERSION 45
|
||||
#define IRSSI_ABI_VERSION 46
|
||||
|
||||
#define DEFAULT_SERVER_ADD_PORT 6667
|
||||
#define DEFAULT_SERVER_ADD_TLS_PORT 6697
|
||||
|
@ -24,6 +24,11 @@
|
||||
#include <irssi/src/core/servers.h>
|
||||
#include <irssi/src/core/queries.h>
|
||||
#include <irssi/src/core/nicklist.h>
|
||||
#include <irssi/src/irc/core/irc-servers.h>
|
||||
#include <irssi/src/irc/core/irc-queries.h>
|
||||
#include <irssi/src/fe-common/core/fe-windows.h>
|
||||
|
||||
int query_type;
|
||||
|
||||
static QUERY_REC *query_find_address(SERVER_REC *server, const char *address)
|
||||
{
|
||||
@ -88,14 +93,42 @@ static void event_privmsg(SERVER_REC *server, const char *data,
|
||||
}
|
||||
}
|
||||
|
||||
static void sig_window_bound_query(SERVER_REC *server)
|
||||
{
|
||||
GSList *wtmp, *btmp, *bounds;
|
||||
|
||||
if (!IS_IRC_SERVER(server))
|
||||
return;
|
||||
|
||||
for (wtmp = windows; wtmp != NULL; wtmp = wtmp->next) {
|
||||
WINDOW_REC *win = wtmp->data;
|
||||
bounds = g_slist_copy(win->bound_items);
|
||||
|
||||
for (btmp = bounds; btmp != NULL; btmp = btmp->next) {
|
||||
WINDOW_BIND_REC *bound = btmp->data;
|
||||
|
||||
if (bound->type == query_type &&
|
||||
g_strcmp0(server->tag, bound->servertag) == 0) {
|
||||
irc_query_create(bound->servertag, bound->name, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
g_slist_free(bounds);
|
||||
}
|
||||
}
|
||||
|
||||
void fe_irc_queries_init(void)
|
||||
{
|
||||
query_type = module_get_uniq_id_str("WINDOW ITEM TYPE", "QUERY");
|
||||
|
||||
settings_add_bool("lookandfeel", "query_track_nick_changes", TRUE);
|
||||
|
||||
signal_add("server connected", sig_window_bound_query);
|
||||
signal_add_first("event privmsg", (SIGNAL_FUNC) event_privmsg);
|
||||
}
|
||||
|
||||
void fe_irc_queries_deinit(void)
|
||||
{
|
||||
signal_remove("server connected", sig_window_bound_query);
|
||||
signal_remove("event privmsg", (SIGNAL_FUNC) event_privmsg);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user