From: Alexander Sedov Date: Thu, 21 Mar 2013 16:49:10 +0000 (+0400) Subject: Fixed SETPROP() macro behaviour in config.def.h to handle escapes correctly. X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=f6dc8b25418e541f7d7b9c3ce63c763918a15d90;p=surf.git Fixed SETPROP() macro behaviour in config.def.h to handle escapes correctly. xprop prints information in format PROPERTY(STRING) = "escaped string", which causes problem with repeated Ctrl-F: any non-ascii turns into \ooo\ooo, this later turns into \\ooo\\ooo, and so on. To de-escape string, printf(1) is used, getting information from xargs -0; without -0 xargs will try to handle escapes by itself and also do shenanigans with quotes, which is totally undesired. Signed-off-by: Christoph Lohmann <20h@r-36.net> --- diff --git a/config.def.h b/config.def.h index 052313c..3ddfaf8 100644 --- a/config.def.h +++ b/config.def.h @@ -23,7 +23,7 @@ static Bool hidebackground = FALSE; #define SETPROP(p, q) { \ .v = (char *[]){ "/bin/sh", "-c", \ - "prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \ + "prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | xargs -0 printf | dmenu`\" &&" \ "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \ p, q, winid, NULL \ } \