Merges from Irssi CVS.
[runtime.git] / apps / irssi / src / core / servers.c
index a5a8c701703005397fb2d62c5ca2451d85169420..1e5c0b8487c70fb482dbdf83b80452911c38fcf1 100644 (file)
@@ -257,6 +257,8 @@ static void server_connect_callback_readpipe(SERVER_REC *server)
 /* initializes server record but doesn't start connecting */
 void server_connect_init(SERVER_REC *server)
 {
+       const char *str;
+
        g_return_if_fail(server != NULL);
 
        MODULE_DATA_INIT(server);
@@ -267,16 +269,16 @@ void server_connect_init(SERVER_REC *server)
        if (server->connrec->username == NULL || *server->connrec->username == '\0') {
                g_free_not_null(server->connrec->username);
 
-               server->connrec->username = g_get_user_name();
-               if (*server->connrec->username == '\0') server->connrec->username = "-";
-               server->connrec->username = g_strdup(server->connrec->username);
+               str = g_get_user_name();
+               if (*str == '\0') str = "-";
+               server->connrec->username = g_strdup(str);
        }
        if (server->connrec->realname == NULL || *server->connrec->realname == '\0') {
                g_free_not_null(server->connrec->realname);
 
-               server->connrec->realname = g_get_real_name();
-               if (*server->connrec->realname == '\0') server->connrec->realname = "-";
-               server->connrec->realname = g_strdup(server->connrec->realname);
+               str = g_get_real_name();
+               if (*str == '\0') str = "-";
+               server->connrec->realname = g_strdup(str);
        }
 
        server->tag = server_create_tag(server->connrec);
@@ -331,7 +333,6 @@ static int server_remove_channels(SERVER_REC *server)
        for (tmp = server->channels; tmp != NULL; tmp = tmp->next) {
                CHANNEL_REC *channel = tmp->data;
 
-               channel->server = NULL;
                channel_destroy(channel);
                found = TRUE;
        }