Introduction
Introduction Statistics Contact Development Disclaimer Help
Improve non-ASCII character search handling - surf - surf browser, a WebKit bas…
git clone git://git.suckless.org/surf
Log
Files
Refs
README
LICENSE
---
commit 11dca18a2d148e5a6463aba783567a3815424963
parent 238d2273b50c33a1e98ad55750126f05201f911d
Author: Quentin Rameau <[email protected]>
Date: Mon, 19 Jul 2021 21:23:32 +0200
Improve non-ASCII character search handling
Before, the XA_STRING would only let use ASCII characters properly.
Now UTF-8 characters should be handled correctly.
Diffstat:
M config.def.h | 4 ++--
M surf.c | 8 +++++---
2 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/config.def.h b/config.def.h
@@ -68,10 +68,10 @@ static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CAS…
#define SETPROP(r, s, p) { \
.v = (const char *[]){ "/bin/sh", "-c", \
"prop=\"$(printf '%b' \"$(xprop -id $1 "r" " \
- "| sed -e 's/^"r"(STRING) = \"\\(.*\\)\"/\\1/' " \
+ "| sed -e 's/^"r"(UTF8_STRING) = \"\\(.*\\)\"/\\1/' " \
" -e 's/\\\\\\(.\\)/\\1/g')\" " \
"| dmenu -p '"p"' -w $1)\" " \
- "&& xprop -id $1 -f "s" 8s -set "s" \"$prop\"", \
+ "&& xprop -id $1 -f "s" 8u -set "s" \"$prop\"", \
"surf-setprop", winid, NULL \
} \
}
diff --git a/surf.c b/surf.c
@@ -37,7 +37,7 @@
#define LENGTH(x) (sizeof(x) / sizeof(x[0]))
#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK))
-enum { AtomFind, AtomGo, AtomUri, AtomLast };
+enum { AtomFind, AtomGo, AtomUri, AtomUTF8, AtomLast };
enum {
OnDoc = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT,
@@ -339,6 +339,7 @@ setup(void)
atoms[AtomFind] = XInternAtom(dpy, "_SURF_FIND", False);
atoms[AtomGo] = XInternAtom(dpy, "_SURF_GO", False);
atoms[AtomUri] = XInternAtom(dpy, "_SURF_URI", False);
+ atoms[AtomUTF8] = XInternAtom(dpy, "UTF8_STRING", False);
gtk_init(NULL, NULL);
@@ -608,7 +609,7 @@ void
setatom(Client *c, int a, const char *v)
{
XChangeProperty(dpy, c->xid,
- atoms[a], XA_STRING, 8, PropModeReplace,
+ atoms[a], atoms[AtomUTF8], 8, PropModeReplace,
(unsigned char *)v, strlen(v) + 1);
XSync(dpy, False);
}
@@ -623,7 +624,8 @@ getatom(Client *c, int a)
unsigned char *p = NULL;
XSync(dpy, False);
- XGetWindowProperty(dpy, c->xid, atoms[a], 0L, BUFSIZ, False, XA_STRING,
+ XGetWindowProperty(dpy, c->xid,
+ atoms[a], 0L, BUFSIZ, False, atoms[AtomUTF8],
&adummy, &idummy, &ldummy, &ldummy, &p);
if (p)
strncpy(buf, (char *)p, LENGTH(buf) - 1);
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.