all repos — surf @ 11dca18a2d148e5a6463aba783567a3815424963

uncomplicated surf (suckless web browser) config

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.
Quentin Rameau quinq@fifth.space
commit

11dca18a2d148e5a6463aba783567a3815424963

parent

238d2273b50c33a1e98ad55750126f05201f911d

2 files changed, 7 insertions(+), 5 deletions(-)

jump to
M config.def.hconfig.def.h

@@ -68,10 +68,10 @@ /* SETPROP(readprop, setprop, prompt)*/

#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 \ } \ }
M surf.csurf.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 @@ /* atoms */

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 @@ unsigned long ldummy;

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);