diff --git a/format.c b/format.c index 8def75b8..17a9dd53 100644 --- a/format.c +++ b/format.c @@ -1369,6 +1369,21 @@ format_cb_buffer_sample(struct format_tree *ft) return (NULL); } +/* Callback for buffer_full. */ +static void * +format_cb_buffer_full(struct format_tree *ft) +{ + size_t size; + const char *s; + + if (ft->pb != NULL) { + s = paste_buffer_data(ft->pb, &size); + if (s != NULL) + return (xstrndup(s, size)); + } + return (NULL); +} + /* Callback for buffer_size. */ static void * format_cb_buffer_size(struct format_tree *ft) @@ -3008,6 +3023,9 @@ static const struct format_table_entry format_table[] = { { "buffer_created", FORMAT_TABLE_TIME, format_cb_buffer_created }, + { "buffer_full", FORMAT_TABLE_STRING, + format_cb_buffer_full + }, { "buffer_mode_format", FORMAT_TABLE_STRING, format_cb_buffer_mode_format }, diff --git a/input.c b/input.c index dea7a2a7..d166343f 100644 --- a/input.c +++ b/input.c @@ -2657,7 +2657,9 @@ input_exit_apc(struct input_ctx *ictx) return; log_debug("%s: \"%s\"", __func__, ictx->input_buf); - if (screen_set_title(sctx->s, ictx->input_buf) && wp != NULL) { + if (wp != NULL && + options_get_number(wp->options, "allow-set-title") && + screen_set_title(sctx->s, ictx->input_buf)) { notify_pane("pane-title-changed", wp); server_redraw_window_borders(wp->window); server_status_window(wp->window); diff --git a/tmux.1 b/tmux.1 index f456d367..fb6e079c 100644 --- a/tmux.1 +++ b/tmux.1 @@ -6058,6 +6058,7 @@ The following variables are available, where appropriate: .It Li "alternate_saved_x" Ta "" Ta "Saved cursor X in alternate screen" .It Li "alternate_saved_y" Ta "" Ta "Saved cursor Y in alternate screen" .It Li "buffer_created" Ta "" Ta "Time buffer created" +.It Li "buffer_full" Ta "" Ta "Full buffer content" .It Li "buffer_name" Ta "" Ta "Name of buffer" .It Li "buffer_sample" Ta "" Ta "Sample of start of buffer" .It Li "buffer_size" Ta "" Ta "Size of the specified buffer in bytes" diff --git a/tty.c b/tty.c index afc34dc4..86cfb316 100644 --- a/tty.c +++ b/tty.c @@ -412,8 +412,8 @@ void tty_repeat_requests(struct tty *tty, int force) { struct client *c = tty->client; - time_t t = time(NULL); - u_int n = t - tty->last_requests; + time_t t = time(NULL); + u_int n = t - tty->last_requests; if (~tty->flags & TTY_STARTED) return;