Introduction
Introduction Statistics Contact Development Disclaimer Help
st-paste_controls-0.9.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
st-paste_controls-0.9.2.diff (1021B)
---
1 diff --git a/x.c b/x.c
2 index bd23686..254d3d0 100644
3 --- a/x.c
4 +++ b/x.c
5 @@ -580,11 +580,33 @@ selnotify(XEvent *e)
6 * copy and pasting. When receiving some selection data,
7 * replace all '\n' with '\r'.
8 * FIXME: Fix the computer world.
9 + *
10 + * Also, replace most C0 control codes with spaces, exc…
11 + * HT and CR. Note that we are not replacing C1 control…
12 + * (0x80 to 0x9F), as these are possibly valid UTF-8
13 + * continuation bytes.
14 */
15 repl = data;
16 last = data + nitems * format / 8;
17 - while ((repl = memchr(repl, '\n', last - repl))) {
18 - *repl++ = '\r';
19 + while (repl != last) {
20 + if (*repl <= 0x1f) {
21 + switch (*repl) {
22 + case 0x09: /* HT \t */
23 + case 0x0D: /* CR \r */
24 + repl++;
25 + break;
26 + case 0x0a: /* LF \n */
27 + *repl++ = '\r';
28 + break;
29 + default:
30 + *repl++ = ' ';
31 + break;
32 + };
33 + } else if (*repl == 0x7f) { /* DEL */
34 + *repl++ = ' ';
35 + } else {
36 + repl++;
37 + }
38 }
39
40 if (IS_SET(MODE_BRCKTPASTE) && ofs == 0)
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.