diff options
-rw-r--r-- | src/core/expandos.c | 4 | ||||
-rw-r--r-- | src/fe-common/core/themes.c | 11 | ||||
-rw-r--r-- | src/fe-text/statusbar.c | 5 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/core/expandos.c b/src/core/expandos.c index 67a9d269..183a4593 100644 --- a/src/core/expandos.c +++ b/src/core/expandos.c @@ -591,6 +591,7 @@ void expandos_init(void) "channel mode changed", EXPANDO_ARG_WINDOW_ITEM, NULL); expando_create("N", expando_nick, "window changed", EXPANDO_ARG_NONE, + "window connect changed", EXPANDO_ARG_WINDOW, NULL, "window server changed", EXPANDO_ARG_WINDOW, "server nick changed", EXPANDO_ARG_SERVER, NULL); expando_create("O", expando_statusoper, @@ -618,6 +619,7 @@ void expandos_init(void) expando_create("W", expando_workdir, NULL); expando_create("Y", expando_realname, "window changed", EXPANDO_ARG_NONE, + "window connect changed", EXPANDO_ARG_WINDOW, NULL, "window server changed", EXPANDO_ARG_WINDOW, NULL); expando_create("Z", expando_time, "time changed", EXPANDO_ARG_NONE, NULL); @@ -637,9 +639,11 @@ void expandos_init(void) "query address changed", EXPANDO_ARG_WINDOW_ITEM, NULL); expando_create("tag", expando_servertag, "window changed", EXPANDO_ARG_NONE, + "window connect changed", EXPANDO_ARG_WINDOW, NULL, "window server changed", EXPANDO_ARG_WINDOW, NULL); expando_create("chatnet", expando_chatnet, "window changed", EXPANDO_ARG_NONE, + "window connect changed", EXPANDO_ARG_WINDOW, NULL, "window server changed", EXPANDO_ARG_WINDOW, NULL); expando_create("itemname", expando_itemname, "window changed", EXPANDO_ARG_NONE, diff --git a/src/fe-common/core/themes.c b/src/fe-common/core/themes.c index d9aac5e2..baa1d3e5 100644 --- a/src/fe-common/core/themes.c +++ b/src/fe-common/core/themes.c @@ -253,10 +253,11 @@ static int data_is_empty(const char **data) { /* since we don't know the real argument list, assume there's always an argument in them */ - char *arglist[] = { + static char *arglist[] = { "x", "x", "x", "x", "x", "x","x", "x", "x", "x", NULL }; + SERVER_REC *server; const char *p; char *ret; int free_ret, empty; @@ -277,8 +278,12 @@ static int data_is_empty(const char **data) /* variable - check if it's empty */ p++; - ret = parse_special((char **) &p, - active_win == NULL ? NULL : active_win->active_server, + + server = active_win == NULL ? NULL : + active_win->active_server != NULL ? + active_win->active_server : active_win->connect_server; + + ret = parse_special((char **) &p, server, active_win == NULL ? NULL : active_win->active, arglist, &free_ret, NULL, 0); p++; diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c index ef620379..689e4f9b 100644 --- a/src/fe-text/statusbar.c +++ b/src/fe-text/statusbar.c @@ -699,8 +699,9 @@ void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only, server = NULL; wiitem = NULL; } else { - server = active_win->active_server; - wiitem = active_win->active; + server = active_win->active_server != NULL ? + active_win->active_server : active_win->connect_server; + wiitem = active_win->active; } /* expand templates */ |