tSimplify SETPROP macro - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 654d527f87e59c6c9f507402878bed62398c4e61
 (DIR) parent d984d12de719f6a8e7f96c04ad3a53ab73a27df8
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Thu,  4 May 2017 16:49:17 +0200
       
       Simplify SETPROP macro
       
       Get rid of xargs by using a subshell instead.
       Use two replacement commands in sed because back-references in BRE are
       ttoo differently implemented in different libc.
       Rename p, q, to reflect what they're used for.
       Reorder sh positional arguments.
       Set $0 to a command name and shift other positional parameters to
       clarify the "sh -c" command.
       
       Diffstat:
         M config.def.h                        |      12 ++++++------
       
       1 file changed, 6 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -50,13 +50,13 @@ static int winsize[] = { 800, 600 };
        static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE |
                                            WEBKIT_FIND_OPTIONS_WRAP_AROUND;
        
       -#define SETPROP(p, q) { \
       +/* SETPROP(readprop, setprop)*/
       +#define SETPROP(r, s) { \
                .v = (const char *[]){ "/bin/sh", "-c", \
       -             "prop=\"`xprop -id $2 $0 " \
       -             "| sed \"s/^$0(STRING) = \\(\\\\\"\\?\\)\\(.*\\)\\1$/\\2/\" " \
       -             "| xargs -0 printf %b | dmenu`\" &&" \
       -             "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
       -             p, q, winid, NULL \
       +             "prop=\"$(printf '%b' \"$(xprop -id $1 $2 " \
       +             "| sed \"s/^$2(STRING) = //;s/^\\\"\\(.*\\)\\\"$/\\1/\")\" " \
       +             "| dmenu)\" && xprop -id $1 -f $3 8s -set $3 \"$prop\"", \
       +             "surf-setprop", winid, r, s, NULL \
                } \
        }