summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/expandos.c4
-rw-r--r--src/fe-common/core/themes.c11
-rw-r--r--src/fe-text/statusbar.c5
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 */