updates.
[silc.git] / apps / irssi / src / core / expandos.c
index 777d50e1e38d61d565c3e0633cdd69f86a3cd341..2830d6771bd0651ec40713271cd8bba040852e0d 100644 (file)
@@ -179,7 +179,8 @@ void expando_bind(const char *key, int funccount, SIGNAL_FUNC *funcs)
                func = arg < funccount ? funcs[arg] : NULL;
                if (func == NULL) func = funcs[EXPANDO_ARG_NONE];
 
-               signal_add_to_id(MODULE_NAME, 1, rec->signal_ids[n], func);
+               signal_add_full_id(MODULE_NAME, SIGNAL_PRIORITY_DEFAULT,
+                                  rec->signal_ids[n], func, NULL);
        }
 }
 
@@ -208,7 +209,7 @@ void expando_unbind(const char *key, int funccount, SIGNAL_FUNC *funcs)
                func = arg < funccount ? funcs[arg] : NULL;
                if (func == NULL) func = funcs[EXPANDO_ARG_NONE];
 
-               signal_remove_id(rec->signal_ids[n], func);
+               signal_remove_id(rec->signal_ids[n], func, NULL);
        }
 }
 
@@ -431,8 +432,21 @@ static char *expando_sysarch(SERVER_REC *server, void *item, int *free_ret)
 /* Topic of active channel (or address of queried nick) */
 static char *expando_topic(SERVER_REC *server, void *item, int *free_ret)
 {
-       return IS_CHANNEL(item) ? CHANNEL(item)->topic :
-               IS_QUERY(item) ? QUERY(item)->address : "";
+       if (IS_CHANNEL(item))
+               return CHANNEL(item)->topic;
+       if (IS_QUERY(item)) {
+               QUERY_REC *query = QUERY(item);
+
+               if (query->server_tag == NULL)
+                       return "";
+
+                *free_ret = TRUE;
+               return query->address == NULL ?
+                       g_strdup_printf("(%s)", query->server_tag) :
+                       g_strdup_printf("%s (%s)", query->address,
+                                       query->server_tag);
+       }
+        return "";
 }
 
 /* Server tag */
@@ -524,7 +538,7 @@ void expandos_init(void)
        struct utsname un;
 #endif
        settings_add_str("misc", "STATUS_OPER", "*");
-       settings_add_str("misc", "timestamp_format", "%H:%M");
+       settings_add_str("lookandfeel", "timestamp_format", "%H:%M");
 
        client_start_time = time(NULL);
        last_sent_msg = NULL; last_sent_msg_body = NULL;