version 1.19, 2013/03/22 10:31:22 |
version 1.20, 2013/03/24 09:21:27 |
|
|
|
|
#include "tmux.h" |
#include "tmux.h" |
|
|
void window_name_callback(unused int, unused short, void *); |
void window_name_callback(int, short, void *); |
char *parse_window_name(const char *); |
char *parse_window_name(struct window *, const char *); |
|
|
void |
void |
queue_window_name(struct window *w) |
queue_window_name(struct window *w) |
|
|
*/ |
*/ |
if (w->active->cmd != NULL && *w->active->cmd == '\0' && |
if (w->active->cmd != NULL && *w->active->cmd == '\0' && |
name != NULL && name[0] == '-' && name[1] != '\0') |
name != NULL && name[0] == '-' && name[1] != '\0') |
wname = parse_window_name(name + 1); |
wname = parse_window_name(w, name + 1); |
else |
else |
wname = parse_window_name(name); |
wname = parse_window_name(w, name); |
free(name); |
free(name); |
} |
} |
|
|
|
|
if (w->active->screen != &w->active->base) |
if (w->active->screen != &w->active->base) |
return (xstrdup("[tmux]")); |
return (xstrdup("[tmux]")); |
if (w->active->cmd != NULL && *w->active->cmd != '\0') |
if (w->active->cmd != NULL && *w->active->cmd != '\0') |
return (parse_window_name(w->active->cmd)); |
return (parse_window_name(w, w->active->cmd)); |
return (parse_window_name(w->active->shell)); |
return (parse_window_name(w, w->active->shell)); |
} |
} |
|
|
char * |
char * |
parse_window_name(const char *in) |
parse_window_name(struct window *w, const char *in) |
{ |
{ |
char *copy, *name, *ptr; |
char *copy, *name, *ptr, *prefix; |
|
size_t prefixlen; |
|
|
|
prefix = options_get_string(&w->options, "command-prefix"); |
|
prefixlen = strlen(prefix); |
|
|
name = copy = xstrdup(in); |
name = copy = xstrdup(in); |
if (strncmp(name, "exec ", (sizeof "exec ") - 1) == 0) |
if (strncmp(name, prefix, prefixlen) == 0) |
name = name + (sizeof "exec ") - 1; |
name = name + prefixlen; |
|
|
while (*name == ' ') |
while (*name == ' ') |
name++; |
name++; |