surf

surf browser, a WebKit based browser
git clone git://git.suckless.org/surf
Log | Files | Refs | README | LICENSE

commit 654d527f87e59c6c9f507402878bed62398c4e61
parent d984d12de719f6a8e7f96c04ad3a53ab73a27df8
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
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.

Diffstat:
Mconfig.def.h | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git 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 \ } \ }