aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--st.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/st.c b/st.c
index 3321c31..df58e9e 100644
--- a/st.c
+++ b/st.c
@@ -132,6 +132,7 @@ enum term_mode {
MODE_FOCUS = 65536,
MODE_MOUSEX10 = 131072,
MODE_MOUSEMANY = 262144,
+ MODE_BRCKTPASTE = 524288,
MODE_MOUSE = MODE_MOUSEBTN|MODE_MOUSEMOTION|MODE_MOUSEX10\
|MODE_MOUSEMANY,
};
@@ -1013,7 +1014,11 @@ selnotify(XEvent *e) {
*repl++ = '\r';
}
+ if(IS_SET(MODE_BRCKTPASTE))
+ ttywrite("\033[200~", 6);
ttywrite((const char *)data, nitems * format / 8);
+ if(IS_SET(MODE_BRCKTPASTE))
+ ttywrite("\033[201~", 6);
XFree(data);
/* number of 32-bit chunks returned */
ofs += nitems * format / 32;
@@ -1868,6 +1873,9 @@ tsetmode(bool priv, bool set, int *args, int narg) {
case 1048:
tcursor((set) ? CURSOR_SAVE : CURSOR_LOAD);
break;
+ case 2004: /* 2004: bracketed paste mode */
+ MODBIT(term.mode, set, MODE_BRCKTPASTE);
+ break;
/* Not implemented mouse modes. See comments there. */
case 1001: /* mouse highlight mode; can hang the
terminal by design when implemented. */
remember that computers suck.