There is no real need for window_printable_flags to allocate, make it

return a buffer from the stack.
pull/865/head
nicm 2017-04-20 09:39:07 +00:00
parent 0b44ad99b5
commit 0f25ad3ca3
3 changed files with 6 additions and 11 deletions

View File

@ -1237,17 +1237,14 @@ format_defaults_winlink(struct format_tree *ft, struct session *s,
struct winlink *wl)
{
struct window *w = wl->window;
char *flags;
if (ft->w == NULL)
ft->w = wl->window;
flags = window_printable_flags(s, wl);
format_defaults_window(ft, w);
format_add(ft, "window_index", "%d", wl->idx);
format_add(ft, "window_flags", "%s", flags);
format_add(ft, "window_flags", "%s", window_printable_flags(s, wl));
format_add(ft, "window_active", "%d", wl == s->curw);
format_add(ft, "window_bell_flag", "%d",
@ -1259,8 +1256,6 @@ format_defaults_winlink(struct format_tree *ft, struct session *s,
format_add(ft, "window_last_flag", "%d",
!!(wl == TAILQ_FIRST(&s->lastw)));
format_add(ft, "window_linked", "%d", session_is_linked(s, wl->window));
free(flags);
}
/* Set default format keys for a window pane. */

2
tmux.h
View File

@ -2120,7 +2120,7 @@ int window_pane_outside(struct window_pane *);
int window_pane_visible(struct window_pane *);
char *window_pane_search(struct window_pane *, const char *,
u_int *);
char *window_printable_flags(struct session *, struct winlink *);
const char *window_printable_flags(struct session *, struct winlink *);
struct window_pane *window_pane_find_up(struct window_pane *);
struct window_pane *window_pane_find_down(struct window_pane *);
struct window_pane *window_pane_find_left(struct window_pane *);

View File

@ -710,11 +710,11 @@ window_destroy_panes(struct window *w)
}
/* Retuns the printable flags on a window, empty string if no flags set. */
char *
const char *
window_printable_flags(struct session *s, struct winlink *wl)
{
char flags[32];
int pos;
static char flags[32];
int pos;
pos = 0;
if (wl->flags & WINLINK_ACTIVITY)
@ -732,7 +732,7 @@ window_printable_flags(struct session *s, struct winlink *wl)
if (wl->window->flags & WINDOW_ZOOMED)
flags[pos++] = 'Z';
flags[pos] = '\0';
return (xstrdup(flags));
return (flags);
}
struct window_pane *