summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server-client.c12
-rw-r--r--tmux.h7
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);
}
diff --git a/tmux.h b/tmux.h
index b6cdcd80..d58ee8c9 100644
--- a/tmux.h
+++ b/tmux.h
@@ -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;