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.
This commit is contained in:
parent
d984d12de7
commit
654d527f87
12
config.def.h
12
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 \
|
||||
} \
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue