[hackers] [surf] Fixed SETPROP() macro behaviour in config.def.h to handle escapes correctly. || Alexander Sedov

From: <git_AT_suckless.org>
Date: Thu, 21 Mar 2013 18:12:16 +0100

commit f6dc8b25418e541f7d7b9c3ce63c763918a15d90
Author: Alexander Sedov <alex0player_AT_gmail.com>
Date: Thu Mar 21 20:49:10 2013 +0400

    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_AT_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
_AT_@ -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 \
         } \
Received on Thu Mar 21 2013 - 18:12:16 CET

This archive was generated by hypermail 2.3.0 : Thu Mar 21 2013 - 18:24:13 CET