diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-01-26 22:57:20 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-01-26 22:57:20 +0000 |
commit | 9cde0c24779e8f43b6d122bc62fa22b6022d9ef0 (patch) | |
tree | 833af8a6751da50421ae9db66ae10e2e6a05823c /names.c | |
parent | 4d7e555a48a6fb0732565b24482d24e968f49eae (diff) | |
download | rtmux-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.c | 26 |
1 files changed, 12 insertions, 14 deletions
@@ -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); } } |