summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/queries.c23
-rw-r--r--src/core/queries.h2
2 files changed, 24 insertions, 1 deletions
diff --git a/src/core/queries.c b/src/core/queries.c
index 92f791d5..ca8d78b4 100644
--- a/src/core/queries.c
+++ b/src/core/queries.c
@@ -116,12 +116,33 @@ QUERY_REC *query_find(SERVER_REC *server, const char *nick)
(void *) nick);
}
+void query_change_nick(QUERY_REC *query, const char *nick)
+{
+ char *oldnick;
+
+ g_return_if_fail(IS_QUERY(query));
+
+ oldnick = query->name;
+ query->name = g_strdup(nick);
+ signal_emit("query nick changed", 2, query, oldnick);
+ g_free(oldnick);
+}
+
+void query_change_address(QUERY_REC *query, const char *address)
+{
+ g_return_if_fail(IS_QUERY(query));
+
+ g_free_not_null(query->address);
+ query->address = g_strdup(address);
+ signal_emit("query address changed", 1, query);
+}
+
void query_change_server(QUERY_REC *query, SERVER_REC *server)
{
g_return_if_fail(IS_QUERY(query));
query->server = server;
- signal_emit("query server changed", 2, query, server);
+ signal_emit("query server changed", 1, query);
}
void queries_init(void)
diff --git a/src/core/queries.h b/src/core/queries.h
index 1709b064..95fdfdc2 100644
--- a/src/core/queries.h
+++ b/src/core/queries.h
@@ -28,6 +28,8 @@ QUERY_REC *query_create(int chat_type, SERVER_REC *server,
/* Find query by name, if `server' is NULL, search from all servers */
QUERY_REC *query_find(SERVER_REC *server, const char *nick);
+void query_change_nick(QUERY_REC *query, const char *nick);
+void query_change_address(QUERY_REC *query, const char *address);
void query_change_server(QUERY_REC *query, SERVER_REC *server);
void queries_init(void);