]> Skullheadx's Git Forge - surf.git/commitdiff
Improve SETPROP xprop parsing
authorQuentin Rameau <quinq@fifth.space>
Thu, 1 Jul 2021 21:40:39 +0000 (23:40 +0200)
committerQuentin Rameau <quinq@fifth.space>
Mon, 19 Jul 2021 20:27:32 +0000 (22:27 +0200)
This handles correctly quotes, backslashes, etc.

config.def.h

index ef447213e85ab5e1980d1438e6f2108583cd84b9..3a417f01c96f86dfb11a863cbb171ffa018f618c 100644 (file)
@@ -67,10 +67,12 @@ static WebKitFindOptions findopts = WEBKIT_FIND_OPTIONS_CASE_INSENSITIVE |
 /* SETPROP(readprop, setprop, prompt)*/
 #define SETPROP(r, s, p) { \
         .v = (const char *[]){ "/bin/sh", "-c", \
-             "prop=\"$(printf '%b' \"$(xprop -id $1 $2 " \
-             "| sed \"s/^$2(STRING) = //;s/^\\\"\\(.*\\)\\\"$/\\1/\")\" " \
-             "| dmenu -p \"$4\" -w $1)\" && xprop -id $1 -f $3 8s -set $3 \"$prop\"", \
-             "surf-setprop", winid, r, s, p, NULL \
+             "prop=\"$(printf '%b' \"$(xprop -id $1 "r" " \
+             "| sed -e 's/^"r"(STRING) = \"\\(.*\\)\"/\\1/' " \
+             "      -e 's/\\\\\\(.\\)/\\1/g')\" " \
+             "| dmenu -p '"p"' -w $1)\" " \
+             "&& xprop -id $1 -f "s" 8s -set "s" \"$prop\"", \
+             "surf-setprop", winid, NULL \
         } \
 }