-/* $OpenBSD: options-table.c,v 1.86 2017/01/24 20:15:32 nicm Exp $ */
+/* $OpenBSD: options-table.c,v 1.87 2017/05/29 20:41:29 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
.type = OPTIONS_TABLE_ARRAY,
.scope = OPTIONS_TABLE_SERVER,
.default_str = "xterm*:XT:Ms=\\E]52;%p1%s;%p2%s\\007"
- ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007"
+ ":Cs=\\E]12;%p1%s\\007:Cr=\\E]112\\007"
":Ss=\\E[%p1%d q:Se=\\E[2 q,screen*:XT",
.separator = ","
},
.type = OPTIONS_TABLE_ARRAY,
.scope = OPTIONS_TABLE_SESSION,
.default_str = "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID "
- "SSH_CONNECTION WINDOWID XAUTHORITY"
+ "SSH_CONNECTION WINDOWID XAUTHORITY"
},
{ .name = "visual-activity",
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
.default_str = "#{?pane_in_mode,[tmux],#{pane_current_command}}"
- "#{?pane_dead,[dead],}"
+ "#{?pane_dead,[dead],}"
},
{ .name = "clock-mode-colour",
.type = OPTIONS_TABLE_STRING,
.scope = OPTIONS_TABLE_WINDOW,
.default_str = "#{?pane_active,#[reverse],}#{pane_index}#[default] "
- "\"#{pane_title}\""
+ "\"#{pane_title}\""
},
{ .name = "pane-border-status",
-/* $OpenBSD: server-client.c,v 1.233 2017/05/29 20:37:30 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.234 2017/05/29 20:41:29 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
if (event_initialized(&c->status_timer))
evtimer_del(&c->status_timer);
screen_free(&c->status);
+ if (c->old_status != NULL) {
+ screen_free(c->old_status);
+ free(c->old_status);
+ }
free(c->title);
free((void *)c->cwd);
-/* $OpenBSD: status.c,v 1.166 2017/05/17 15:20:23 nicm Exp $ */
+/* $OpenBSD: status.c,v 1.167 2017/05/29 20:41:29 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
size_t llen, rlen, seplen;
int larrow, rarrow;
+ /* Delete the saved status line, if any. */
+ if (c->old_status != NULL) {
+ screen_free(c->old_status);
+ free(c->old_status);
+ c->old_status = NULL;
+ }
+
/* No status line? */
if (c->tty.sy == 0 || !options_get_number(s->options, "status"))
return (1);
status_message_clear(c);
+ if (c->old_status == NULL) {
+ c->old_status = xmalloc(sizeof *c->old_status);
+ memcpy(c->old_status, &c->status, sizeof *c->old_status);
+ screen_init(&c->status, c->tty.sx, 1, 0);
+ }
+
va_start(ap, fmt);
xvasprintf(&c->message_string, fmt, ap);
va_end(ap);
status_message_clear(c);
status_prompt_clear(c);
+ if (c->old_status == NULL) {
+ c->old_status = xmalloc(sizeof *c->old_status);
+ memcpy(c->old_status, &c->status, sizeof *c->old_status);
+ screen_init(&c->status, c->tty.sx, 1, 0);
+ }
+
c->prompt_string = format_expand_time(ft, msg, t);
c->prompt_buffer = utf8_fromcstr(tmp);
-/* $OpenBSD: tmux.h,v 1.772 2017/05/29 20:37:30 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.773 2017/05/29 20:41:29 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
struct event status_timer;
struct screen status;
+ struct screen *old_status;
+
#define CLIENT_TERMINAL 0x1
#define CLIENT_LOGIN 0x2
#define CLIENT_EXIT 0x4