Sync OpenBSD patchset 587:

New server option, escape-time, to set the timeout used to detect if escapes
are alone or part of a function key or meta sequence.
This commit is contained in:
Tiago Cunha 2009-12-16 01:09:01 +00:00
parent ef3e483a0d
commit 90d40e27da
5 changed files with 21 additions and 15 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-set-option.c,v 1.91 2009-12-12 01:01:11 tcunha Exp $ */
/* $Id: cmd-set-option.c,v 1.92 2009-12-16 01:09:01 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -74,6 +74,7 @@ const char *set_option_bell_action_list[] = {
};
const struct set_option_entry set_option_table[] = {
{ "escape-time", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
{ "quiet", SET_OPTION_FLAG, 0, 0, NULL },
{ NULL, 0, 0, 0, NULL }
};

14
tmux.1
View File

@ -1,4 +1,4 @@
.\" $Id: tmux.1,v 1.215 2009-12-10 16:59:02 tcunha Exp $
.\" $Id: tmux.1,v 1.216 2009-12-16 01:09:01 tcunha Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
.\"
@ -14,7 +14,7 @@
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 10 2009 $
.Dd $Mdocdate: December 14 2009 $
.Dt TMUX 1
.Os
.Sh NAME
@ -1288,8 +1288,14 @@ Available window options are listed under
.Pp
Available server options are:
.Bl -tag -width Ds
.It Ic escape-time
Set the time in milliseconds for which
.Nm
waits after an escape is input to determine if it is part of a function or meta
key sequences.
The default is 500 milliseconds.
.It Ic quiet
Enable of disable the display of various informational messages (see also the
Enable or disable the display of various informational messages (see also the
.Fl q
command line flag).
.El
@ -1884,7 +1890,7 @@ The default is off.
Show the window options with
.Fl w
(equivalent to
.Ic show-window-options ),
.Ic show-window-options ) ,
the server options with
.Fl s ,
otherwise the session options for

3
tmux.c
View File

@ -1,4 +1,4 @@
/* $Id: tmux.c,v 1.195 2009-12-12 01:01:11 tcunha Exp $ */
/* $Id: tmux.c,v 1.196 2009-12-16 01:09:01 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -320,6 +320,7 @@ main(int argc, char **argv)
options_init(&global_options, NULL);
oo = &global_options;
options_set_number(oo, "quiet", quiet);
options_set_number(oo, "escape-time", 500);
options_init(&global_s_options, NULL);
so = &global_s_options;

7
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.532 2009-12-10 16:59:02 tcunha Exp $ */
/* $Id: tmux.h,v 1.533 2009-12-16 01:09:01 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -49,7 +49,7 @@ extern char **environ;
/* Default prompt history length. */
#define PROMPT_HISTORY 100
/*
/*
* Minimum layout cell size, NOT including separator line. The scroll region
* cannot be one line in height so this must be at least two.
*/
@ -58,9 +58,6 @@ extern char **environ;
/* Automatic name refresh interval, in milliseconds. */
#define NAME_INTERVAL 500
/* Escape timer period, in milliseconds. */
#define ESCAPE_PERIOD 500
/* Maximum data to buffer for output before suspending reading from panes. */
#define BACKOFF_THRESHOLD 1024

View File

@ -1,4 +1,4 @@
/* $Id: tty-keys.c,v 1.53 2009-12-04 22:14:47 tcunha Exp $ */
/* $Id: tty-keys.c,v 1.54 2009-12-16 01:09:01 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -429,7 +429,7 @@ tty_keys_next(struct tty *tty)
const char *buf;
size_t len, size;
cc_t bspace;
int key;
int key, delay;
buf = EVBUFFER_DATA(tty->event->input);
len = EVBUFFER_LENGTH(tty->event->input);
@ -521,8 +521,9 @@ partial_key:
start_timer:
/* Start the timer and wait for expiry or more data. */
tv.tv_sec = 0;
tv.tv_usec = ESCAPE_PERIOD * 1000L;
delay = options_get_number(&global_options, "escape-time");
tv.tv_sec = delay / 1000;
tv.tv_usec = (delay % 1000) * 1000L;
evtimer_del(&tty->key_timer);
evtimer_set(&tty->key_timer, tty_keys_callback, tty);