diff options
author | nicm <nicm> | 2015-11-19 22:46:46 +0000 |
---|---|---|
committer | nicm <nicm> | 2015-11-19 22:46:46 +0000 |
commit | 374e273df5f66e90e06f60617495446facfbd4f3 (patch) | |
tree | 6b264e4fe7cb65ff88271f966c980a65d872f22d | |
parent | 98967c5ec97feef99f8278df9c3b993bbff9c0d5 (diff) | |
download | rtmux-374e273df5f66e90e06f60617495446facfbd4f3.tar.gz rtmux-374e273df5f66e90e06f60617495446facfbd4f3.tar.bz2 rtmux-374e273df5f66e90e06f60617495446facfbd4f3.zip |
Only assume pasting with at least two characters, reduces problems for
people who can type ^B c very fast, or who are using tmux inside
something else that buffers.
-rw-r--r-- | server-client.c | 12 | ||||
-rw-r--r-- | tmux.h | 7 |
2 files changed, 14 insertions, 5 deletions
diff --git a/server-client.c b/server-client.c index 04929dec..64426a70 100644 --- a/server-client.c +++ b/server-client.c @@ -494,8 +494,16 @@ server_client_assume_paste(struct session *s) return (0); timersub(&s->activity_time, &s->last_activity_time, &tv); - if (tv.tv_sec == 0 && tv.tv_usec < t * 1000) - return (1); + if (tv.tv_sec == 0 && tv.tv_usec < t * 1000) { + log_debug("session %s pasting (flag %d)", s->name, + !!(s->flags & SESSION_PASTING)); + if (s->flags & SESSION_PASTING) + return (1); + s->flags |= SESSION_PASTING; + return (0); + } + log_debug("session %s not pasting", s->name); + s->flags &= ~SESSION_PASTING; return (0); } @@ -33,6 +33,8 @@ #include <stdio.h> #include <termios.h> +#include "xmalloc.h" + extern char *__progname; extern char **environ; @@ -45,8 +47,6 @@ struct session; struct tmuxpeer; struct tmuxproc; -#include "xmalloc.h" - /* Default global configuration file. */ #define TMUX_CONF "/etc/tmux.conf" @@ -1014,6 +1014,7 @@ struct session { struct options *options; #define SESSION_UNATTACHED 0x1 /* not attached to any clients */ +#define SESSION_PASTING 0x2 int flags; u_int attached; @@ -1147,7 +1148,7 @@ struct tty { struct tty_key *key_tree; }; -/* TTY command context and function pointer. */ +/* TTY command context. */ struct tty_ctx { struct window_pane *wp; |