tFix extra bracketed paste markers when pasting >8kb - st - [fork] customized b… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 4be353e381e07fd8100f0cf29b299180f6681e46 | |
parent 20d53cebc122829449524ef339ce44e13c6e85ec | |
Author: dequis <[email protected]> | |
Date: Fri, 25 Sep 2015 00:56:15 -0300 | |
Fix extra bracketed paste markers when pasting >8kb | |
Before this patch, when pasting over BUFSIZE (8192 bytes here), st would | |
do the following: | |
\e[200~...8192 bytes...\e[201~\e[200~...remaining bytes...\e[201~ | |
With this patch, the start marker is only sent when the offset is 0 (at | |
tthe beginning of selnotify) and the end marker is only sent when the | |
remaining bytes to read are 0 (at the end). | |
For short pastes, both conditions are true in the same iteration. | |
For long pastes, it removes the extra markers in the middle, keeping the | |
intended wrapping: | |
\e[200~...8192 bytes......remaining bytes...\e[201~ | |
Signed-off-by: Christoph Lohmann <[email protected]> | |
Diffstat: | |
M st.c | 4 ++-- | |
1 file changed, 2 insertions(+), 2 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -1135,10 +1135,10 @@ selnotify(XEvent *e) | |
*repl++ = '\r'; | |
} | |
- if (IS_SET(MODE_BRCKTPASTE)) | |
+ if (IS_SET(MODE_BRCKTPASTE) && ofs == 0) | |
ttywrite("\033[200~", 6); | |
ttysend((char *)data, nitems * format / 8); | |
- if (IS_SET(MODE_BRCKTPASTE)) | |
+ if (IS_SET(MODE_BRCKTPASTE) && rem == 0) | |
ttywrite("\033[201~", 6); | |
XFree(data); | |
/* number of 32-bit chunks returned */ |