mirror of
https://github.com/tmux/tmux.git
synced 2025-04-22 12:28:48 +00:00
Remove the c0-* options which never really worked satisfactorily. Going
to try something else...
This commit is contained in:
parent
92faa2eaeb
commit
44364d7112
16
input.c
16
input.c
@ -1069,7 +1069,6 @@ input_c0_dispatch(struct input_ctx *ictx)
|
|||||||
struct screen_write_ctx *sctx = &ictx->ctx;
|
struct screen_write_ctx *sctx = &ictx->ctx;
|
||||||
struct window_pane *wp = ictx->wp;
|
struct window_pane *wp = ictx->wp;
|
||||||
struct screen *s = sctx->s;
|
struct screen *s = sctx->s;
|
||||||
u_int trigger;
|
|
||||||
|
|
||||||
log_debug("%s: '%c", __func__, ictx->ch);
|
log_debug("%s: '%c", __func__, ictx->ch);
|
||||||
|
|
||||||
@ -1081,7 +1080,7 @@ input_c0_dispatch(struct input_ctx *ictx)
|
|||||||
break;
|
break;
|
||||||
case '\010': /* BS */
|
case '\010': /* BS */
|
||||||
screen_write_backspace(sctx);
|
screen_write_backspace(sctx);
|
||||||
goto count_c0;
|
break;
|
||||||
case '\011': /* HT */
|
case '\011': /* HT */
|
||||||
/* Don't tab beyond the end of the line. */
|
/* Don't tab beyond the end of the line. */
|
||||||
if (s->cx >= screen_size_x(s) - 1)
|
if (s->cx >= screen_size_x(s) - 1)
|
||||||
@ -1098,10 +1097,10 @@ input_c0_dispatch(struct input_ctx *ictx)
|
|||||||
case '\013': /* VT */
|
case '\013': /* VT */
|
||||||
case '\014': /* FF */
|
case '\014': /* FF */
|
||||||
screen_write_linefeed(sctx, 0);
|
screen_write_linefeed(sctx, 0);
|
||||||
goto count_c0;
|
break;
|
||||||
case '\015': /* CR */
|
case '\015': /* CR */
|
||||||
screen_write_carriagereturn(sctx);
|
screen_write_carriagereturn(sctx);
|
||||||
goto count_c0;
|
break;
|
||||||
case '\016': /* SO */
|
case '\016': /* SO */
|
||||||
ictx->cell.set = 1;
|
ictx->cell.set = 1;
|
||||||
break;
|
break;
|
||||||
@ -1113,15 +1112,6 @@ input_c0_dispatch(struct input_ctx *ictx)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (0);
|
|
||||||
|
|
||||||
count_c0:
|
|
||||||
trigger = options_get_number(&wp->window->options, "c0-change-trigger");
|
|
||||||
if (trigger != 0 && ++wp->changes >= trigger) {
|
|
||||||
wp->flags |= PANE_DROP;
|
|
||||||
window_pane_timer_start(wp);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
tmux.1
18
tmux.1
@ -2886,24 +2886,6 @@ used when the
|
|||||||
.Ic automatic-rename
|
.Ic automatic-rename
|
||||||
option is enabled.
|
option is enabled.
|
||||||
.Pp
|
.Pp
|
||||||
.It Ic c0-change-interval Ar interval
|
|
||||||
.It Ic c0-change-trigger Ar trigger
|
|
||||||
These two options configure a simple form of rate limiting for a pane.
|
|
||||||
If
|
|
||||||
.Nm
|
|
||||||
sees more than
|
|
||||||
.Ar trigger
|
|
||||||
C0 sequences that modify the screen (for example, carriage returns, linefeeds
|
|
||||||
or backspaces) in one millisecond, it will stop updating the pane immediately and
|
|
||||||
instead redraw it entirely every
|
|
||||||
.Ar interval
|
|
||||||
milliseconds.
|
|
||||||
This helps to prevent fast output (such as
|
|
||||||
.Xr yes 1 )
|
|
||||||
overwhelming the terminal.
|
|
||||||
The default is a trigger of 250 and an interval of 100.
|
|
||||||
A trigger of zero disables the rate limiting.
|
|
||||||
.Pp
|
|
||||||
.It Ic clock-mode-colour Ar colour
|
.It Ic clock-mode-colour Ar colour
|
||||||
Set clock colour.
|
Set clock colour.
|
||||||
.Pp
|
.Pp
|
||||||
|
5
tmux.h
5
tmux.h
@ -844,10 +844,6 @@ struct window_pane {
|
|||||||
char tty[TTY_NAME_MAX];
|
char tty[TTY_NAME_MAX];
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
u_int changes;
|
|
||||||
struct event changes_timer;
|
|
||||||
u_int changes_redraw;
|
|
||||||
|
|
||||||
int fd;
|
int fd;
|
||||||
struct bufferevent *event;
|
struct bufferevent *event;
|
||||||
|
|
||||||
@ -2107,7 +2103,6 @@ struct window_pane *window_pane_find_by_id_str(const char *);
|
|||||||
struct window_pane *window_pane_find_by_id(u_int);
|
struct window_pane *window_pane_find_by_id(u_int);
|
||||||
struct window_pane *window_pane_create(struct window *, u_int, u_int, u_int);
|
struct window_pane *window_pane_create(struct window *, u_int, u_int, u_int);
|
||||||
void window_pane_destroy(struct window_pane *);
|
void window_pane_destroy(struct window_pane *);
|
||||||
void window_pane_timer_start(struct window_pane *);
|
|
||||||
int window_pane_spawn(struct window_pane *, int, char **,
|
int window_pane_spawn(struct window_pane *, int, char **,
|
||||||
const char *, const char *, int, struct environ *,
|
const char *, const char *, int, struct environ *,
|
||||||
struct termios *, char **);
|
struct termios *, char **);
|
||||||
|
40
window.c
40
window.c
@ -58,7 +58,6 @@ u_int next_window_pane_id;
|
|||||||
u_int next_window_id;
|
u_int next_window_id;
|
||||||
u_int next_active_point;
|
u_int next_active_point;
|
||||||
|
|
||||||
void window_pane_timer_callback(int, short, void *);
|
|
||||||
void window_pane_read_callback(struct bufferevent *, void *);
|
void window_pane_read_callback(struct bufferevent *, void *);
|
||||||
void window_pane_error_callback(struct bufferevent *, short, void *);
|
void window_pane_error_callback(struct bufferevent *, short, void *);
|
||||||
|
|
||||||
@ -741,9 +740,6 @@ window_pane_destroy(struct window_pane *wp)
|
|||||||
{
|
{
|
||||||
window_pane_reset_mode(wp);
|
window_pane_reset_mode(wp);
|
||||||
|
|
||||||
if (event_initialized(&wp->changes_timer))
|
|
||||||
evtimer_del(&wp->changes_timer);
|
|
||||||
|
|
||||||
if (wp->fd != -1) {
|
if (wp->fd != -1) {
|
||||||
bufferevent_free(wp->event);
|
bufferevent_free(wp->event);
|
||||||
close(wp->fd);
|
close(wp->fd);
|
||||||
@ -877,42 +873,6 @@ window_pane_spawn(struct window_pane *wp, int argc, char **argv,
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
window_pane_timer_start(struct window_pane *wp)
|
|
||||||
{
|
|
||||||
struct timeval tv;
|
|
||||||
|
|
||||||
tv.tv_sec = 0;
|
|
||||||
tv.tv_usec = 1000;
|
|
||||||
|
|
||||||
evtimer_del(&wp->changes_timer);
|
|
||||||
evtimer_set(&wp->changes_timer, window_pane_timer_callback, wp);
|
|
||||||
evtimer_add(&wp->changes_timer, &tv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
window_pane_timer_callback(unused int fd, unused short events, void *data)
|
|
||||||
{
|
|
||||||
struct window_pane *wp = data;
|
|
||||||
struct window *w = wp->window;
|
|
||||||
u_int interval, trigger;
|
|
||||||
|
|
||||||
interval = options_get_number(&w->options, "c0-change-interval");
|
|
||||||
trigger = options_get_number(&w->options, "c0-change-trigger");
|
|
||||||
|
|
||||||
if (wp->changes_redraw++ == interval) {
|
|
||||||
wp->flags |= PANE_REDRAW;
|
|
||||||
wp->changes_redraw = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trigger == 0 || wp->changes < trigger) {
|
|
||||||
wp->flags |= PANE_REDRAW;
|
|
||||||
wp->flags &= ~PANE_DROP;
|
|
||||||
} else
|
|
||||||
window_pane_timer_start(wp);
|
|
||||||
wp->changes = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
window_pane_read_callback(unused struct bufferevent *bufev, void *data)
|
window_pane_read_callback(unused struct bufferevent *bufev, void *data)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user