aboutsummaryrefslogtreecommitdiff
path: root/names.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2009-01-26 22:57:20 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2009-01-26 22:57:20 +0000
commit9cde0c24779e8f43b6d122bc62fa22b6022d9ef0 (patch)
tree833af8a6751da50421ae9db66ae10e2e6a05823c /names.c
parent4d7e555a48a6fb0732565b24482d24e968f49eae (diff)
downloadrtmux-9cde0c24779e8f43b6d122bc62fa22b6022d9ef0.tar.gz
rtmux-9cde0c24779e8f43b6d122bc62fa22b6022d9ef0.tar.bz2
rtmux-9cde0c24779e8f43b6d122bc62fa22b6022d9ef0.zip
Be more clever about picking window name.
Diffstat (limited to 'names.c')
-rw-r--r--names.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/names.c b/names.c
index fe7eef3b..4e6eba63 100644
--- a/names.c
+++ b/names.c
@@ -1,4 +1,4 @@
-/* $Id: names.c,v 1.1 2009-01-20 19:35:03 nicm Exp $ */
+/* $Id: names.c,v 1.2 2009-01-26 22:57:19 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -31,8 +31,7 @@ set_window_names(void)
{
struct window *w;
u_int i;
- pid_t pgrp;
- char *name;
+ char *name, *wname;
struct timeval tv, tv2;
if (gettimeofday(&tv, NULL) != 0)
@@ -53,21 +52,20 @@ set_window_names(void)
timeradd(&w->name_timer, &tv2, &w->name_timer);
if (w->active->screen != &w->active->base)
- pgrp = -1;
- else if ((pgrp = tcgetpgrp(w->active->fd)) == w->pgrp)
- continue;
- w->pgrp = pgrp;
-
- name = get_argv0(pgrp);
- if (pgrp == -1 || name == NULL)
- name = default_window_name(w);
+ name = NULL;
else
- name = parse_window_name(name);
- if (strcmp(name, w->name) == 0)
+ name = get_argv0(w->active->fd, w->active->tty);
+ if (name == NULL)
+ wname = default_window_name(w);
+ else {
+ wname = parse_window_name(name);
xfree(name);
+ }
+ if (strcmp(wname, w->name) == 0)
+ xfree(wname);
else {
xfree(w->name);
- w->name = name;
+ w->name = wname;
server_status_window(w);
}
}