sync with OpenBSD -current
This commit is contained in:
parent
51a5102224
commit
0a783d275f
10 changed files with 386 additions and 43 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: frontend.c,v 1.38 2024/08/26 06:06:04 florian Exp $ */
|
/* $OpenBSD: frontend.c,v 1.39 2024/09/16 07:34:49 florian Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017, 2021 Florian Obser <florian@openbsd.org>
|
* Copyright (c) 2017, 2021 Florian Obser <florian@openbsd.org>
|
||||||
|
@ -310,7 +310,7 @@ frontend_dispatch_main(int fd, short event, void *bula)
|
||||||
fatalx("%s: invalid %s", __func__, i2s(type));
|
fatalx("%s: invalid %s", __func__, i2s(type));
|
||||||
|
|
||||||
if ((iface = get_iface_by_id(if_index)) == NULL) {
|
if ((iface = get_iface_by_id(if_index)) == NULL) {
|
||||||
close(fd);
|
close(udpsock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (iface->udpsock != -1)
|
if (iface->udpsock != -1)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: rc.shutdown.8,v 1.16 2020/05/16 16:58:12 jmc Exp $
|
.\" $OpenBSD: rc.shutdown.8,v 1.17 2024/09/15 19:39:26 kn Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 1999 Aaron Campbell
|
.\" Copyright (c) 1999 Aaron Campbell
|
||||||
.\" All rights reserved.
|
.\" All rights reserved.
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: May 16 2020 $
|
.Dd $Mdocdate: September 15 2024 $
|
||||||
.Dt RC.SHUTDOWN 8
|
.Dt RC.SHUTDOWN 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -54,6 +54,9 @@ defined in the
|
||||||
.Va pkg_scripts
|
.Va pkg_scripts
|
||||||
variable in
|
variable in
|
||||||
.Xr rc.conf.local 8 ,
|
.Xr rc.conf.local 8 ,
|
||||||
|
as well as
|
||||||
|
.Xr vmd 8 ,
|
||||||
|
in that order,
|
||||||
by passing them the
|
by passing them the
|
||||||
.Cm stop
|
.Cm stop
|
||||||
argument.
|
argument.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: exec_elf.c,v 1.190 2024/08/21 03:16:25 deraadt Exp $ */
|
/* $OpenBSD: exec_elf.c,v 1.191 2024/09/15 23:13:19 deraadt Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1996 Per Fogelstrom
|
* Copyright (c) 1996 Per Fogelstrom
|
||||||
|
@ -311,8 +311,10 @@ elf_read_pintable(struct proc *p, struct vnode *vp, Elf_Phdr *pp,
|
||||||
for (i = 0; i < nsyscalls; i++) {
|
for (i = 0; i < nsyscalls; i++) {
|
||||||
if (syscalls[i].sysno <= 0 ||
|
if (syscalls[i].sysno <= 0 ||
|
||||||
syscalls[i].sysno >= SYS_MAXSYSCALL ||
|
syscalls[i].sysno >= SYS_MAXSYSCALL ||
|
||||||
syscalls[i].offset > len)
|
syscalls[i].offset > len) {
|
||||||
|
npins = 0;
|
||||||
goto bad;
|
goto bad;
|
||||||
|
}
|
||||||
npins = MAX(npins, syscalls[i].sysno);
|
npins = MAX(npins, syscalls[i].sysno);
|
||||||
}
|
}
|
||||||
if (is_ldso)
|
if (is_ldso)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: sntrup761.c,v 1.7 2024/09/15 02:20:51 djm Exp $ */
|
/* $OpenBSD: sntrup761.c,v 1.8 2024/09/16 05:37:05 djm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public Domain, Authors:
|
* Public Domain, Authors:
|
||||||
|
@ -912,8 +912,8 @@ crypto_int32 crypto_int32_min(crypto_int32 crypto_int32_x,crypto_int32 crypto_in
|
||||||
__asm__ ("cmp %w0,%w1\n csel %w0,%w0,%w1,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
|
__asm__ ("cmp %w0,%w1\n csel %w0,%w0,%w1,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
|
||||||
return crypto_int32_x;
|
return crypto_int32_x;
|
||||||
#else
|
#else
|
||||||
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
|
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
|
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
||||||
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
||||||
crypto_int32_z &= crypto_int32_r;
|
crypto_int32_z &= crypto_int32_r;
|
||||||
|
@ -931,8 +931,8 @@ crypto_int32 crypto_int32_max(crypto_int32 crypto_int32_x,crypto_int32 crypto_in
|
||||||
__asm__ ("cmp %w0,%w1\n csel %w0,%w1,%w0,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
|
__asm__ ("cmp %w0,%w1\n csel %w0,%w1,%w0,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc");
|
||||||
return crypto_int32_x;
|
return crypto_int32_x;
|
||||||
#else
|
#else
|
||||||
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
|
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
|
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
||||||
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
||||||
crypto_int32_z &= crypto_int32_r;
|
crypto_int32_z &= crypto_int32_r;
|
||||||
|
@ -956,8 +956,8 @@ void crypto_int32_minmax(crypto_int32 *crypto_int32_p,crypto_int32 *crypto_int32
|
||||||
*crypto_int32_p = crypto_int32_r;
|
*crypto_int32_p = crypto_int32_r;
|
||||||
*crypto_int32_q = crypto_int32_s;
|
*crypto_int32_q = crypto_int32_s;
|
||||||
#else
|
#else
|
||||||
crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;
|
crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;
|
crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;
|
||||||
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y);
|
||||||
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z);
|
||||||
crypto_int32_z &= crypto_int32_r;
|
crypto_int32_z &= crypto_int32_r;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $OpenBSD: sntrup761.sh,v 1.8 2024/09/15 02:20:51 djm Exp $
|
# $OpenBSD: sntrup761.sh,v 1.9 2024/09/16 05:37:05 djm Exp $
|
||||||
# Placed in the Public Domain.
|
# Placed in the Public Domain.
|
||||||
#
|
#
|
||||||
AUTHOR="supercop-20240808/crypto_kem/sntrup761/ref/implementors"
|
AUTHOR="supercop-20240808/crypto_kem/sntrup761/ref/implementors"
|
||||||
|
@ -63,8 +63,13 @@ for i in $FILES; do
|
||||||
-e "s/static void crypto_int16_minmax/void crypto_int16_minmax/"
|
-e "s/static void crypto_int16_minmax/void crypto_int16_minmax/"
|
||||||
;;
|
;;
|
||||||
*/cryptoint/crypto_int32.h)
|
*/cryptoint/crypto_int32.h)
|
||||||
|
# Use int64_t for intermediate values in crypto_int32_minmax to
|
||||||
|
# prevent signed 32-bit integer overflow when called by
|
||||||
|
# crypto_sort_int32. Original code depends on -fwrapv (we set -ftrapv)
|
||||||
sed -e "s/static void crypto_int32_store/void crypto_int32_store/" \
|
sed -e "s/static void crypto_int32_store/void crypto_int32_store/" \
|
||||||
-e "s/^[#]define crypto_int32_optblocker.*//" \
|
-e "s/^[#]define crypto_int32_optblocker.*//" \
|
||||||
|
-e "s/crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x;/crypto_int64 crypto_int32_r = (crypto_int64)crypto_int32_y ^ (crypto_int64)crypto_int32_x;/" \
|
||||||
|
-e "s/crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x;/crypto_int64 crypto_int32_z = (crypto_int64)crypto_int32_y - (crypto_int64)crypto_int32_x;/" \
|
||||||
-e "s/static void crypto_int32_minmax/void crypto_int32_minmax/"
|
-e "s/static void crypto_int32_minmax/void crypto_int32_minmax/"
|
||||||
;;
|
;;
|
||||||
*/cryptoint/crypto_int64.h)
|
*/cryptoint/crypto_int64.h)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: input.c,v 1.228 2024/08/21 04:37:42 nicm Exp $ */
|
/* $OpenBSD: input.c,v 1.229 2024/09/16 20:38:48 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
|
@ -1349,7 +1349,7 @@ input_csi_dispatch(struct input_ctx *ictx)
|
||||||
struct screen_write_ctx *sctx = &ictx->ctx;
|
struct screen_write_ctx *sctx = &ictx->ctx;
|
||||||
struct screen *s = sctx->s;
|
struct screen *s = sctx->s;
|
||||||
struct input_table_entry *entry;
|
struct input_table_entry *entry;
|
||||||
int i, n, m;
|
int i, n, m, ek;
|
||||||
u_int cx, bg = ictx->cell.cell.bg;
|
u_int cx, bg = ictx->cell.cell.bg;
|
||||||
|
|
||||||
if (ictx->flags & INPUT_DISCARD)
|
if (ictx->flags & INPUT_DISCARD)
|
||||||
|
@ -1407,30 +1407,36 @@ input_csi_dispatch(struct input_ctx *ictx)
|
||||||
break;
|
break;
|
||||||
case INPUT_CSI_MODSET:
|
case INPUT_CSI_MODSET:
|
||||||
n = input_get(ictx, 0, 0, 0);
|
n = input_get(ictx, 0, 0, 0);
|
||||||
m = input_get(ictx, 1, 0, 0);
|
if (n != 4)
|
||||||
/*
|
|
||||||
* Set the extended key reporting mode as per the client request,
|
|
||||||
* unless "extended-keys always" forces us into mode 1.
|
|
||||||
*/
|
|
||||||
if (options_get_number(global_options, "extended-keys") != 1)
|
|
||||||
break;
|
break;
|
||||||
screen_write_mode_clear(sctx,
|
m = input_get(ictx, 1, 0, 0);
|
||||||
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
|
||||||
if (n == 4 && m == 1)
|
/*
|
||||||
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
* Set the extended key reporting mode as per the client
|
||||||
if (n == 4 && m == 2)
|
* request, unless "extended-keys" is set to "off".
|
||||||
|
*/
|
||||||
|
ek = options_get_number(global_options, "extended-keys");
|
||||||
|
if (ek == 0)
|
||||||
|
break;
|
||||||
|
screen_write_mode_clear(sctx, EXTENDED_KEY_MODES);
|
||||||
|
if (m == 2)
|
||||||
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED_2);
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED_2);
|
||||||
|
else if (m == 1 || ek == 2)
|
||||||
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
||||||
break;
|
break;
|
||||||
case INPUT_CSI_MODOFF:
|
case INPUT_CSI_MODOFF:
|
||||||
n = input_get(ictx, 0, 0, 0);
|
n = input_get(ictx, 0, 0, 0);
|
||||||
|
if (n != 4)
|
||||||
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear the extended key reporting mode as per the client request,
|
* Clear the extended key reporting mode as per the client
|
||||||
* unless "extended-keys always" forces us into mode 1.
|
* request, unless "extended-keys always" forces into mode 1.
|
||||||
*/
|
*/
|
||||||
if (n == 4) {
|
screen_write_mode_clear(sctx,
|
||||||
screen_write_mode_clear(sctx,
|
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
||||||
MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2);
|
if (options_get_number(global_options, "extended-keys") == 2)
|
||||||
}
|
screen_write_mode_set(sctx, MODE_KEYS_EXTENDED);
|
||||||
break;
|
break;
|
||||||
case INPUT_CSI_WINOPS:
|
case INPUT_CSI_WINOPS:
|
||||||
input_csi_dispatch_winops(ictx);
|
input_csi_dispatch_winops(ictx);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: options-table.c,v 1.177 2024/08/21 04:37:42 nicm Exp $ */
|
/* $OpenBSD: options-table.c,v 1.178 2024/09/16 20:28:22 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
|
@ -386,6 +386,17 @@ const struct options_table_entry options_table[] = {
|
||||||
.text = "Maximum number of server messages to keep."
|
.text = "Maximum number of server messages to keep."
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ .name = "prefix-timeout",
|
||||||
|
.type = OPTIONS_TABLE_NUMBER,
|
||||||
|
.scope = OPTIONS_TABLE_SERVER,
|
||||||
|
.minimum = 0,
|
||||||
|
.maximum = INT_MAX,
|
||||||
|
.default_num = 0,
|
||||||
|
.unit = "milliseconds",
|
||||||
|
.text = "The timeout for the prefix key if no subsequent key is "
|
||||||
|
"pressed. Zero means disabled."
|
||||||
|
},
|
||||||
|
|
||||||
{ .name = "prompt-history-limit",
|
{ .name = "prompt-history-limit",
|
||||||
.type = OPTIONS_TABLE_NUMBER,
|
.type = OPTIONS_TABLE_NUMBER,
|
||||||
.scope = OPTIONS_TABLE_SERVER,
|
.scope = OPTIONS_TABLE_SERVER,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: server-client.c,v 1.408 2024/09/11 19:12:33 nicm Exp $ */
|
/* $OpenBSD: server-client.c,v 1.409 2024/09/16 20:28:22 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
|
@ -226,6 +226,17 @@ server_client_set_key_table(struct client *c, const char *name)
|
||||||
key_bindings_unref_table(c->keytable);
|
key_bindings_unref_table(c->keytable);
|
||||||
c->keytable = key_bindings_get_table(name, 1);
|
c->keytable = key_bindings_get_table(name, 1);
|
||||||
c->keytable->references++;
|
c->keytable->references++;
|
||||||
|
if (gettimeofday(&c->keytable->activity_time, NULL) != 0)
|
||||||
|
fatal("gettimeofday failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint64_t
|
||||||
|
server_client_key_table_activity_diff(struct client *c)
|
||||||
|
{
|
||||||
|
struct timeval diff;
|
||||||
|
|
||||||
|
timersub(&c->activity_time, &c->keytable->activity_time, &diff);
|
||||||
|
return ((diff.tv_sec * 1000ULL) + (diff.tv_usec / 1000ULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get default key table. */
|
/* Get default key table. */
|
||||||
|
@ -1870,7 +1881,7 @@ server_client_key_callback(struct cmdq_item *item, void *data)
|
||||||
struct key_table *table, *first;
|
struct key_table *table, *first;
|
||||||
struct key_binding *bd;
|
struct key_binding *bd;
|
||||||
int xtimeout;
|
int xtimeout;
|
||||||
uint64_t flags;
|
uint64_t flags, prefix_delay;
|
||||||
struct cmd_find_state fs;
|
struct cmd_find_state fs;
|
||||||
key_code key0, prefix, prefix2;
|
key_code key0, prefix, prefix2;
|
||||||
|
|
||||||
|
@ -1965,8 +1976,34 @@ try_again:
|
||||||
if (c->flags & CLIENT_REPEAT)
|
if (c->flags & CLIENT_REPEAT)
|
||||||
log_debug("currently repeating");
|
log_debug("currently repeating");
|
||||||
|
|
||||||
/* Try to see if there is a key binding in the current table. */
|
|
||||||
bd = key_bindings_get(table, key0);
|
bd = key_bindings_get(table, key0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If prefix-timeout is enabled and we're in the prefix table, see if
|
||||||
|
* the timeout has been exceeded. Revert to the root table if so.
|
||||||
|
*/
|
||||||
|
prefix_delay = options_get_number(global_options, "prefix-timeout");
|
||||||
|
if (prefix_delay > 0 &&
|
||||||
|
strcmp(table->name, "prefix") == 0 &&
|
||||||
|
server_client_key_table_activity_diff(c) > prefix_delay) {
|
||||||
|
/*
|
||||||
|
* If repeating is active and this is a repeating binding,
|
||||||
|
* ignore the timeout.
|
||||||
|
*/
|
||||||
|
if (bd != NULL &&
|
||||||
|
(c->flags & CLIENT_REPEAT) &&
|
||||||
|
(bd->flags & KEY_BINDING_REPEAT)) {
|
||||||
|
log_debug("prefix timeout ignored, repeat is active");
|
||||||
|
} else {
|
||||||
|
log_debug("prefix timeout exceeded");
|
||||||
|
server_client_set_key_table(c, NULL);
|
||||||
|
first = table = c->keytable;
|
||||||
|
server_status_client(c);
|
||||||
|
goto table_changed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Try to see if there is a key binding in the current table. */
|
||||||
if (bd != NULL) {
|
if (bd != NULL) {
|
||||||
/*
|
/*
|
||||||
* Key was matched in this table. If currently repeating but a
|
* Key was matched in this table. If currently repeating but a
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $OpenBSD: tmux.1,v 1.954 2024/08/27 07:49:07 nicm Exp $
|
.\" $OpenBSD: tmux.1,v 1.957 2024/09/16 20:46:58 nicm Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
.\"
|
.\"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||||
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: August 27 2024 $
|
.Dd $Mdocdate: September 16 2024 $
|
||||||
.Dt TMUX 1
|
.Dt TMUX 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -1812,6 +1812,23 @@ is used to name the new paste buffer.
|
||||||
.Xc
|
.Xc
|
||||||
Copy from the cursor position and exit copy mode.
|
Copy from the cursor position and exit copy mode.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-pipe-end-of-line
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy from the cursor position to the end of the line and pipe the text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-end-of-line-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe-end-of-line
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic copy-line
|
.Ic copy-line
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
.Xc
|
.Xc
|
||||||
|
@ -1822,11 +1839,60 @@ Copy the entire line.
|
||||||
.Xc
|
.Xc
|
||||||
Copy the entire line and exit copy mode.
|
Copy the entire line and exit copy mode.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-pipe-line
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy the entire line and pipe the text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-line-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe-line
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Copy the selection, clear it and pipe its text to
|
||||||
|
.Ar command .
|
||||||
|
.Ar prefix
|
||||||
|
is used to name the new paste buffer.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-no-clear
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic copy-pipe-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-pipe
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic copy-selection
|
.Ic copy-selection
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
.Xc
|
.Xc
|
||||||
Copies the current selection.
|
Copies the current selection.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic copy-selection-no-clear
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic copy-selection
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
.Ic copy-selection-and-cancel
|
.Ic copy-selection-and-cancel
|
||||||
.Op Ar prefix
|
.Op Ar prefix
|
||||||
(vi: Enter)
|
(vi: Enter)
|
||||||
|
@ -1840,6 +1906,12 @@ Copy the current selection and exit copy mode.
|
||||||
.Xc
|
.Xc
|
||||||
Move the cursor down.
|
Move the cursor down.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic cursor-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic cursor-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
.Ic cursor-left
|
.Ic cursor-left
|
||||||
(vi: h)
|
(vi: h)
|
||||||
(emacs: Left)
|
(emacs: Left)
|
||||||
|
@ -1871,6 +1943,24 @@ Move the cursor to the end of the line.
|
||||||
.Xc
|
.Xc
|
||||||
Move the cursor to a specific line.
|
Move the cursor to a specific line.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic halfpage-down
|
||||||
|
(vi: C-d)
|
||||||
|
(emacs: M-Down)
|
||||||
|
.Xc
|
||||||
|
Scroll down by half a page.
|
||||||
|
.It Xo
|
||||||
|
.Ic halfpage-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic halfpage-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
|
.Ic halfpage-up
|
||||||
|
(vi: C-u)
|
||||||
|
(emacs: M-Up)
|
||||||
|
.Xc
|
||||||
|
Scroll up by half a page.
|
||||||
|
.It Xo
|
||||||
.Ic history-bottom
|
.Ic history-bottom
|
||||||
(vi: G)
|
(vi: G)
|
||||||
(emacs: M->)
|
(emacs: M->)
|
||||||
|
@ -1903,6 +1993,27 @@ Jump backwards to the specified text.
|
||||||
.Xc
|
.Xc
|
||||||
Jump forward to the specified text.
|
Jump forward to the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic jump-reverse
|
||||||
|
(vi: ,)
|
||||||
|
(emacs: ,)
|
||||||
|
.Xc
|
||||||
|
Repeat the last jump in the reverse direction (forward becomes backward and
|
||||||
|
backward becomes forward).
|
||||||
|
.It Xo
|
||||||
|
.Ic jump-to-backward
|
||||||
|
.Ar to
|
||||||
|
(vi: T)
|
||||||
|
.Xc
|
||||||
|
Jump backwards, but one character less, placing the cursor on the character
|
||||||
|
after the target.
|
||||||
|
.It Xo
|
||||||
|
.Ic jump-to-forward
|
||||||
|
.Ar to
|
||||||
|
(vi: t)
|
||||||
|
.Xc
|
||||||
|
Jump forward, but one character less, placing the cursor on the character
|
||||||
|
before the target.
|
||||||
|
.It Xo
|
||||||
.Ic jump-to-mark
|
.Ic jump-to-mark
|
||||||
(vi: M-x)
|
(vi: M-x)
|
||||||
(emacs: M-x)
|
(emacs: M-x)
|
||||||
|
@ -1937,18 +2048,71 @@ Move to the next prompt.
|
||||||
.Xc
|
.Xc
|
||||||
Move to the next word.
|
Move to the next word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic next-word-end
|
||||||
|
(vi: e)
|
||||||
|
(emacs: M-f)
|
||||||
|
.Xc
|
||||||
|
Move to the end of the next word.
|
||||||
|
.It Xo
|
||||||
|
.Ic next-space
|
||||||
|
(vi: W)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic next-word
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic next-space-end
|
||||||
|
(vi: E)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic next-word-end
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic other-end
|
||||||
|
(vi: o)
|
||||||
|
.Xc
|
||||||
|
Switch at which end of the selection the cursor sits.
|
||||||
|
.It Xo
|
||||||
.Ic page-down
|
.Ic page-down
|
||||||
(vi: C-f)
|
(vi: C-f)
|
||||||
(emacs: PageDown)
|
(emacs: PageDown)
|
||||||
.Xc
|
.Xc
|
||||||
Scroll down by one page.
|
Scroll down by one page.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic page-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic page-down
|
||||||
|
but also exit copy mode if reaching the bottom.
|
||||||
|
.It Xo
|
||||||
.Ic page-up
|
.Ic page-up
|
||||||
(vi: C-b)
|
(vi: C-b)
|
||||||
(emacs: PageUp)
|
(emacs: PageUp)
|
||||||
.Xc
|
.Xc
|
||||||
Scroll up by one page.
|
Scroll up by one page.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic pipe
|
||||||
|
.Op Ar command
|
||||||
|
.Xc
|
||||||
|
Pipe the selected text to
|
||||||
|
.Ar command
|
||||||
|
and clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic pipe-no-clear
|
||||||
|
.Op Ar command
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic pipe
|
||||||
|
but do not clear the selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic pipe-and-cancel
|
||||||
|
.Op Ar command
|
||||||
|
.Op Ar prefix
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic pipe
|
||||||
|
but also exit copy mode.
|
||||||
|
.It Xo
|
||||||
.Ic previous-matching-bracket
|
.Ic previous-matching-bracket
|
||||||
(emacs: M-C-b)
|
(emacs: M-C-b)
|
||||||
.Xc
|
.Xc
|
||||||
|
@ -1971,6 +2135,21 @@ Move to the previous prompt.
|
||||||
.Xc
|
.Xc
|
||||||
Move to the previous word.
|
Move to the previous word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic previous-space
|
||||||
|
(vi: B)
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic previous-word
|
||||||
|
but use a space alone as the word separator.
|
||||||
|
.It Xo
|
||||||
|
.Ic rectangle-on
|
||||||
|
.Xc
|
||||||
|
Turn on rectangle selection mode.
|
||||||
|
.It Xo
|
||||||
|
.Ic rectangle-off
|
||||||
|
.Xc
|
||||||
|
Turn off rectangle selection mode.
|
||||||
|
.It Xo
|
||||||
.Ic rectangle-toggle
|
.Ic rectangle-toggle
|
||||||
(vi: v)
|
(vi: v)
|
||||||
(emacs: R)
|
(emacs: R)
|
||||||
|
@ -1983,6 +2162,40 @@ Toggle rectangle selection mode.
|
||||||
.Xc
|
.Xc
|
||||||
Refresh the content from the pane.
|
Refresh the content from the pane.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic scroll-bottom
|
||||||
|
.Xc
|
||||||
|
Scroll up until the current line is at the bottom while keeping the cursor on
|
||||||
|
that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-down
|
||||||
|
(vi: C-e)
|
||||||
|
(emacs: C-Down)
|
||||||
|
.Xc
|
||||||
|
Scroll down.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-down-and-cancel
|
||||||
|
.Xc
|
||||||
|
Same as
|
||||||
|
.Ic scroll-down
|
||||||
|
but also exit copy mode if the cursor reaches the bottom.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-middle
|
||||||
|
(vi: z)
|
||||||
|
.Xc
|
||||||
|
Scroll so that the current line becomes the middle one while keeping the
|
||||||
|
cursor on that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-top
|
||||||
|
.Xc
|
||||||
|
Scroll down until the current line is at the top while keeping the cursor on
|
||||||
|
that line.
|
||||||
|
.It Xo
|
||||||
|
.Ic scroll-up
|
||||||
|
(vi: C-y)
|
||||||
|
(emacs: C-Up)
|
||||||
|
.Xc
|
||||||
|
Scroll up.
|
||||||
|
.It Xo
|
||||||
.Ic search-again
|
.Ic search-again
|
||||||
(vi: n)
|
(vi: n)
|
||||||
(emacs: n)
|
(emacs: n)
|
||||||
|
@ -1995,12 +2208,51 @@ Repeat the last search.
|
||||||
.Xc
|
.Xc
|
||||||
Search backwards for the specified text.
|
Search backwards for the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic search-backward-incremental
|
||||||
|
.Ar text
|
||||||
|
(emacs: C-r)
|
||||||
|
.Xc
|
||||||
|
Search backwards incrementally for the specified text.
|
||||||
|
Is expected to be used with the
|
||||||
|
.Fl i
|
||||||
|
flag to the
|
||||||
|
.Ic command-prompt
|
||||||
|
command.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-backward-text
|
||||||
|
.Ar text
|
||||||
|
.Xc
|
||||||
|
Search backwards for the specified plain text.
|
||||||
|
.It Xo
|
||||||
.Ic search-forward
|
.Ic search-forward
|
||||||
.Ar text
|
.Ar text
|
||||||
(vi: /)
|
(vi: /)
|
||||||
.Xc
|
.Xc
|
||||||
Search forward for the specified text.
|
Search forward for the specified text.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic search-forward-incremental
|
||||||
|
.Ar text
|
||||||
|
(emacs: C-s)
|
||||||
|
.Xc
|
||||||
|
Search forward incrementally for the specified text.
|
||||||
|
Is expected to be used with the
|
||||||
|
.Fl i
|
||||||
|
flag to the
|
||||||
|
.Ic command-prompt
|
||||||
|
command.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-forward-text
|
||||||
|
.Ar text
|
||||||
|
.Xc
|
||||||
|
Search forward for the specified plain text.
|
||||||
|
.It Xo
|
||||||
|
.Ic search-reverse
|
||||||
|
(vi: N)
|
||||||
|
(emacs: N)
|
||||||
|
.Xc
|
||||||
|
Repeat the last search in the reverse direction (forward becomes backward and
|
||||||
|
backward becomes forward).
|
||||||
|
.It Xo
|
||||||
.Ic select-line
|
.Ic select-line
|
||||||
(vi: V)
|
(vi: V)
|
||||||
.Xc
|
.Xc
|
||||||
|
@ -2010,12 +2262,28 @@ Select the current line.
|
||||||
.Xc
|
.Xc
|
||||||
Select the current word.
|
Select the current word.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic set-mark
|
||||||
|
(vi: X)
|
||||||
|
(emacs: X)
|
||||||
|
.Xc
|
||||||
|
Mark the current line.
|
||||||
|
.It Xo
|
||||||
.Ic start-of-line
|
.Ic start-of-line
|
||||||
(vi: 0)
|
(vi: 0)
|
||||||
(emacs: C-a)
|
(emacs: C-a)
|
||||||
.Xc
|
.Xc
|
||||||
Move the cursor to the start of the line.
|
Move the cursor to the start of the line.
|
||||||
.It Xo
|
.It Xo
|
||||||
|
.Ic stop-selection
|
||||||
|
.Xc
|
||||||
|
Stop selecting without clearing the current selection.
|
||||||
|
.It Xo
|
||||||
|
.Ic toggle-position
|
||||||
|
(vi: P)
|
||||||
|
(emacs: P)
|
||||||
|
.Xc
|
||||||
|
Toggle the visibility of the position indicator in the top right.
|
||||||
|
.It Xo
|
||||||
.Ic top-line
|
.Ic top-line
|
||||||
(vi: H)
|
(vi: H)
|
||||||
(emacs: M-R)
|
(emacs: M-R)
|
||||||
|
@ -3795,7 +4063,8 @@ the sequence for only keys which lack an existing well-known representation; or
|
||||||
mode 2 which changes the sequence for all keys.
|
mode 2 which changes the sequence for all keys.
|
||||||
When set to
|
When set to
|
||||||
.Ic always ,
|
.Ic always ,
|
||||||
mode 1 output is forced and the program cannot change it.
|
modes 1 and 2 can still be requested by applications, but mode 1 will be forced
|
||||||
|
instead of the standard mode.
|
||||||
When set to
|
When set to
|
||||||
.Ic off ,
|
.Ic off ,
|
||||||
this feature is disabled and only standard keys are reported.
|
this feature is disabled and only standard keys are reported.
|
||||||
|
@ -4091,10 +4360,12 @@ If
|
||||||
(the default), leave the session orphaned.
|
(the default), leave the session orphaned.
|
||||||
If
|
If
|
||||||
.Ic keep-last ,
|
.Ic keep-last ,
|
||||||
destroy the session only if it is in a group and has other sessions in that group.
|
destroy the session only if it is in a group and has other sessions in that
|
||||||
|
group.
|
||||||
If
|
If
|
||||||
.Ic keep-group ,
|
.Ic keep-group ,
|
||||||
destroy the session unless it is in a group and is the only session in that group.
|
destroy the session unless it is in a group and is the only session in that
|
||||||
|
group.
|
||||||
.It Xo Ic detach-on-destroy
|
.It Xo Ic detach-on-destroy
|
||||||
.Op Ic off | on | no-detached | previous | next
|
.Op Ic off | on | no-detached | previous | next
|
||||||
.Xc
|
.Xc
|
||||||
|
@ -4228,6 +4499,13 @@ Like
|
||||||
.Ic prefix2
|
.Ic prefix2
|
||||||
can be set to
|
can be set to
|
||||||
.Ql None .
|
.Ql None .
|
||||||
|
.It Ic prefix-timeout Ar time
|
||||||
|
Set the time in milliseconds for which
|
||||||
|
.Nm
|
||||||
|
waits after
|
||||||
|
.Ic prefix
|
||||||
|
is input before dismissing it.
|
||||||
|
Can be set to zero to disable any timeout.
|
||||||
.It Xo Ic renumber-windows
|
.It Xo Ic renumber-windows
|
||||||
.Op Ic on | off
|
.Op Ic on | off
|
||||||
.Xc
|
.Xc
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: tmux.h,v 1.1226 2024/08/27 07:49:07 nicm Exp $ */
|
/* $OpenBSD: tmux.h,v 1.1227 2024/09/16 20:28:22 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
|
@ -1982,6 +1982,7 @@ RB_HEAD(key_bindings, key_binding);
|
||||||
|
|
||||||
struct key_table {
|
struct key_table {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
struct timeval activity_time;
|
||||||
struct key_bindings key_bindings;
|
struct key_bindings key_bindings;
|
||||||
struct key_bindings default_key_bindings;
|
struct key_bindings default_key_bindings;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue