From: Quentin Rameau Date: Thu, 4 May 2017 14:49:17 +0000 (+0200) Subject: Simplify SETPROP macro X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=654d527f87e59c6c9f507402878bed62398c4e61;p=surf.git Simplify SETPROP macro Get rid of xargs by using a subshell instead. Use two replacement commands in sed because back-references in BRE are too 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. --- diff --git a/config.def.h b/config.def.h index 5fb79de..a8a4a7b 100644 --- a/config.def.h +++ b/config.def.h @@ -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 \ } \ }