Move status line free into its own function.

This commit is contained in:
nicm 2019-03-15 14:46:58 +00:00
parent 2d71bef0ca
commit 85044a634b
3 changed files with 19 additions and 8 deletions

View File

@ -281,13 +281,7 @@ server_client_lost(struct client *c)
if (c->stderr_data != c->stdout_data)
evbuffer_free(c->stderr_data);
if (event_initialized(&c->status.timer))
evtimer_del(&c->status.timer);
screen_free(&c->status.status);
if (c->status.old_status != NULL) {
screen_free(c->status.old_status);
free(c->status.old_status);
}
status_free(c);
free(c->title);
free((void *)c->cwd);

View File

@ -296,7 +296,23 @@ status_get_window_at(struct client *c, u_int x)
return (NULL);
}
/* Draw status for client on the last lines of given context. */
/* Free status line. */
void
status_free(struct client *c)
{
struct status_line *sl = &c->status;
if (event_initialized(&sl->timer))
evtimer_del(&sl->timer);
screen_free(&sl->status);
if (sl->old_status != NULL) {
screen_free(sl->old_status);
free(sl->old_status);
}
}
/* Draw status line for client. */
int
status_redraw(struct client *c)
{

1
tmux.h
View File

@ -1970,6 +1970,7 @@ void status_update_saved(struct session *);
int status_at_line(struct client *);
u_int status_line_size(struct client *);
struct window *status_get_window_at(struct client *, u_int);
void status_free(struct client *);
int status_redraw(struct client *);
void printflike(2, 3) status_message_set(struct client *, const char *, ...);
void status_message_clear(struct client *);