mirror of
https://github.com/tmux/tmux.git
synced 2024-12-25 10:58:48 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
ae8f2208c9
10
input-keys.c
10
input-keys.c
@ -587,9 +587,10 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
|
|||||||
newkey = options_get_number(global_options, "backspace");
|
newkey = options_get_number(global_options, "backspace");
|
||||||
if (newkey == KEYC_BSPACE)
|
if (newkey == KEYC_BSPACE)
|
||||||
newkey = '\b';
|
newkey = '\b';
|
||||||
log_debug("%s: key 0x%llx is backspace -> 0x%llx", __func__,
|
newkey |= (key & (KEYC_MASK_FLAGS|KEYC_MASK_MODIFIERS));
|
||||||
key, newkey|(key & KEYC_MASK_FLAGS));
|
log_debug("%s: key 0x%llx is backspace -> 0x%llx", __func__, key,
|
||||||
key = newkey|(key & KEYC_MASK_FLAGS);
|
newkey);
|
||||||
|
key = newkey;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is this backtab? */
|
/* Is this backtab? */
|
||||||
@ -644,8 +645,7 @@ input_key(struct screen *s, struct bufferevent *bev, key_code key)
|
|||||||
if (ike != NULL) {
|
if (ike != NULL) {
|
||||||
log_debug("%s: found key 0x%llx: \"%s\"", __func__, key,
|
log_debug("%s: found key 0x%llx: \"%s\"", __func__, key,
|
||||||
ike->data);
|
ike->data);
|
||||||
if ((key == KEYC_PASTE_START || key == KEYC_PASTE_END) &&
|
if (KEYC_IS_PASTE(key) && (~s->mode & MODE_BRACKETPASTE))
|
||||||
(~s->mode & MODE_BRACKETPASTE))
|
|
||||||
return (0);
|
return (0);
|
||||||
if ((key & KEYC_META) && (~key & KEYC_IMPLIED_META))
|
if ((key & KEYC_META) && (~key & KEYC_IMPLIED_META))
|
||||||
input_key_write(__func__, bev, "\033", 1);
|
input_key_write(__func__, bev, "\033", 1);
|
||||||
|
@ -2577,7 +2577,7 @@ paste_key:
|
|||||||
if (c->flags & CLIENT_READONLY)
|
if (c->flags & CLIENT_READONLY)
|
||||||
goto out;
|
goto out;
|
||||||
if (event->buf != NULL)
|
if (event->buf != NULL)
|
||||||
window_pane_paste(wp, event->buf, event->len);
|
window_pane_paste(wp, key, event->buf, event->len);
|
||||||
key = KEYC_NONE;
|
key = KEYC_NONE;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
7
tmux.h
7
tmux.h
@ -174,6 +174,10 @@ struct winlink;
|
|||||||
(((key) & KEYC_MASK_KEY) < KEYC_USER || \
|
(((key) & KEYC_MASK_KEY) < KEYC_USER || \
|
||||||
((key) & KEYC_MASK_KEY) >= KEYC_USER_END))
|
((key) & KEYC_MASK_KEY) >= KEYC_USER_END))
|
||||||
|
|
||||||
|
/* Is this a paste key? */
|
||||||
|
#define KEYC_IS_PASTE(key) \
|
||||||
|
((key) == KEYC_PASTE_START || (key) == KEYC_PASTE_END)
|
||||||
|
|
||||||
/* Multiple click timeout. */
|
/* Multiple click timeout. */
|
||||||
#define KEYC_CLICK_TIMEOUT 300
|
#define KEYC_CLICK_TIMEOUT 300
|
||||||
|
|
||||||
@ -3208,7 +3212,8 @@ void window_pane_reset_mode_all(struct window_pane *);
|
|||||||
int window_pane_key(struct window_pane *, struct client *,
|
int window_pane_key(struct window_pane *, struct client *,
|
||||||
struct session *, struct winlink *, key_code,
|
struct session *, struct winlink *, key_code,
|
||||||
struct mouse_event *);
|
struct mouse_event *);
|
||||||
void window_pane_paste(struct window_pane *, char *, size_t);
|
void window_pane_paste(struct window_pane *, key_code, char *,
|
||||||
|
size_t);
|
||||||
int window_pane_visible(struct window_pane *);
|
int window_pane_visible(struct window_pane *);
|
||||||
int window_pane_exited(struct window_pane *);
|
int window_pane_exited(struct window_pane *);
|
||||||
u_int window_pane_search(struct window_pane *, const char *, int,
|
u_int window_pane_search(struct window_pane *, const char *, int,
|
||||||
|
5
window.c
5
window.c
@ -1229,7 +1229,7 @@ window_pane_copy_key(struct window_pane *wp, key_code key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
window_pane_paste(struct window_pane *wp, char *buf, size_t len)
|
window_pane_paste(struct window_pane *wp, key_code key, char *buf, size_t len)
|
||||||
{
|
{
|
||||||
if (!TAILQ_EMPTY(&wp->modes))
|
if (!TAILQ_EMPTY(&wp->modes))
|
||||||
return;
|
return;
|
||||||
@ -1237,6 +1237,9 @@ window_pane_paste(struct window_pane *wp, char *buf, size_t len)
|
|||||||
if (wp->fd == -1 || wp->flags & PANE_INPUTOFF)
|
if (wp->fd == -1 || wp->flags & PANE_INPUTOFF)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (KEYC_IS_PASTE(key) && (~wp->screen->mode & MODE_BRACKETPASTE))
|
||||||
|
return;
|
||||||
|
|
||||||
log_debug("%s: %.*s", __func__, (int)len, buf);
|
log_debug("%s: %.*s", __func__, (int)len, buf);
|
||||||
bufferevent_write(wp->event, buf, len);
|
bufferevent_write(wp->event, buf, len);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user