X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Ffe-common%2Fcore%2Ffe-windows.c;h=af8e4297e9fe3fe5b1f2b9061b4df521cbf461b2;hb=9601176a506c8a545a954891e5e25552e9609159;hp=2370facb239552247a1f1c926c627935141bc0ea;hpb=8efe5c6b18756ea335788ebf0afdf294764f4c26;p=crypto.git diff --git a/apps/irssi/src/fe-common/core/fe-windows.c b/apps/irssi/src/fe-common/core/fe-windows.c index 2370facb..af8e4297 100644 --- a/apps/irssi/src/fe-common/core/fe-windows.c +++ b/apps/irssi/src/fe-common/core/fe-windows.c @@ -109,9 +109,10 @@ void window_destroy(WINDOW_REC *window) window->destroying = TRUE; windows = g_slist_remove(windows, window); - if (active_win == window && windows != NULL) { - active_win = NULL; /* it's corrupted */ - window_set_active(windows->data); + if (active_win == window) { + active_win = NULL; /* it's corrupted */ + if (windows != NULL) + window_set_active(windows->data); } while (window->items != NULL) @@ -160,8 +161,8 @@ void window_set_active(WINDOW_REC *window) void window_change_server(WINDOW_REC *window, void *server) { - if (server != NULL && SERVER(server)->disconnected) - return; + if (server != NULL && SERVER(server)->disconnected) + return; window->active_server = server; signal_emit("window server changed", 2, window, server); @@ -194,7 +195,7 @@ void window_set_refnum(WINDOW_REC *window, int refnum) void window_set_name(WINDOW_REC *window, const char *name) { g_free_not_null(window->name); - window->name = g_strdup(name); + window->name = name == NULL || *name == '\0' ? NULL : g_strdup(name); signal_emit("window name changed", 1, window); } @@ -338,23 +339,11 @@ WINDOW_REC *window_find_item(SERVER_REC *server, const char *name) item = server == NULL ? NULL : window_item_find(server, name); - if (item == NULL && server == NULL) { + if (item == NULL) { /* not found from the active server - any server? */ item = window_item_find(NULL, name); } - if (item == NULL) { - char *chan; - - /* still nothing? maybe user just left the # in front of - channel, try again with it.. */ - chan = g_strdup_printf("#%s", name); - item = server == NULL ? NULL : - window_item_find(server, chan); - if (item == NULL) item = window_item_find(NULL, chan); - g_free(chan); - } - if (item == NULL) return 0;