--
-+#include "base64dec.c"
- char *argv0;
-
- #define Glyph Glyph_
-_AT_@ -2533,11 +2533,21 @@ strhandle(void)
- if (narg > 1)
- xsettitle(strescseq.args[1]);
- return;
-- case 4: /* color set */
-+ case 52:/*set tmux clipboard*/
-+ if (narg > 2){
-+ char *src=strescseq.args[2];
-+ size_t l = (strlen(src)/4)*3;
-+ char *buf=xmalloc(l+1);
-+ base64dec(buf, src, l);
-+ xsetsel(buf, CurrentTime);
-+ }
-+ return;
-+ case 4: /* color set */
- if (narg < 3)
- break;
- p = strescseq.args[2];
- /* FALLTHROUGH */
-+
- case 104: /* color reset, here p = NULL */
- j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
- if (xsetcolorname(j, p)) {
-diff --git a/st.info b/st.info
-index 13cc8eb..0b928af 100644
---- a/st.info
-+++ b/st.info
-_AT_@ -189,6 +189,7 @@ st| simpleterm,
- Se,
- Ss,
- Tc,
-+ Ms=\E]52;%p1%s;%p2%s,
-
- st-256color| simpleterm with 256 colors,
- use=st,
diff --git a/st.suckless.org/patches/osc52.md b/st.suckless.org/patches/osc52.md
index d83fc92..671bab3 100644
--- a/st.suckless.org/patches/osc52.md
+++ b/st.suckless.org/patches/osc52.md
_AT_@ -4,16 +4,19 @@ OSC-52 tmux clipboard
Description
-----------
-This patch adds OSC 52 control sequence support to st to support the syncing of tmux's clipboard to the X PRIMARY selection..
+This patch adds OSC 52 control sequence support to st to support the syncing of
+tmux's clipboard to the X PRIMARY selection..
Notes
-----
-For remote tmux instances, you must update the terminfo with the included terminfo here.
+For remote tmux instances, you must update the terminfo with the included
+terminfo here.
+
Download
--------
- * [osc52.diff](osc52.diff)
+ * [st-osc52-20170125-c63a87c.diff](st-osc52-20170125-c63a87c.diff)
Authors
-------
diff --git a/st.suckless.org/patches/st-osc52-20170125-c63a87c.diff b/st.suckless.org/patches/st-osc52-20170125-c63a87c.diff
new file mode 100644
index 0000000..e07a7b0
--- /dev/null
+++ b/st.suckless.org/patches/st-osc52-20170125-c63a87c.diff
_AT_@ -0,0 +1,96 @@
+diff --git a/base64dec.c b/base64dec.c
+new file mode 100644
+index 0000000..3f75aab
+--- /dev/null
++++ b/base64dec.c
+_AT_@ -0,0 +1,42 @@
++/*taken from libulz with permission*/
++
++static const char base64_tbl[64] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++
++inline int chrpos(int c) {
++ int i = 0;
++ for(;i<64;i++) if(base64_tbl[i] == c) return i;
++ return -1;
++}
++static size_t base64dec(void* dst, const char* src, size_t dst_len) {
++ const char* s = src;
++ unsigned char *d = dst;
++ size_t l = dst_len, o = 0;
++ int n = 0, cnt = 0, skip = 0;
++ if(l) for(;;) {
++ int p;
++ if(*s == '=') {
++ skip++;
++ if(skip > 2) return 0;
++ p = 0;
++ } else if (!*s) {
++ if(cnt % 4 != 0 || !l) return 0;
++ *d++ = 0;
++ return o;
++ } else if(skip) {
++ return 0;
++ } else if((p = chrpos(*s)) == -1) return 0;
++ n = (n << 6) | p;
++ cnt++;
++ if(cnt % 4 == 0) {
++ if(l < 3) return 0;
++ *d++ = n >> 16;
++ *d++ = n >> 8 & 0xff;
++ *d++ = n & 0xff;
++ l -= 3;
++ o += 3-skip;
++ n = 0;
++ }
++ s++;
++ }
++ return 0;
++}
+diff --git a/st.c b/st.c
+index fbcd9e0..54cceeb 100644
+--- a/st.c
++++ b/st.c
+_AT_@ -32,7 +32,7 @@
+ #include <wchar.h>
+
+ #include "arg.h"
+-
++#include "base64dec.c"
+ char *argv0;
+
+ #define Glyph Glyph_
+_AT_@ -2533,11 +2533,21 @@ strhandle(void)
+ if (narg > 1)
+ xsettitle(strescseq.args[1]);
+ return;
+- case 4: /* color set */
++ case 52:/*set tmux clipboard*/
++ if (narg > 2){
++ char *src=strescseq.args[2];
++ size_t l = (strlen(src)/4)*3;
++ char *buf=xmalloc(l+1);
++ base64dec(buf, src, l);
++ xsetsel(buf, CurrentTime);
++ }
++ return;
++ case 4: /* color set */
+ if (narg < 3)
+ break;
+ p = strescseq.args[2];
+ /* FALLTHROUGH */
++
+ case 104: /* color reset, here p = NULL */
+ j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
+ if (xsetcolorname(j, p)) {
+diff --git a/st.info b/st.info
+index 13cc8eb..0b928af 100644
+--- a/st.info
++++ b/st.info
+_AT_@ -189,6 +189,7 @@ st| simpleterm,
+ Se,
+ Ss,
+ Tc,
++ Ms=\E]52;%p1%s;%p2%s,
+
+ st-256color| simpleterm with 256 colors,
+ use=st,
Received on Tue Feb 07 2017 - 12:43:10 CET
This archive was generated by hypermail 2.3.0 : Tue Feb 07 2017 - 12:48:22 CET