aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-04-18 20:16:37 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2021-04-18 20:16:37 +0300
commit72428b5907caa2f06356308ab014f9d1b2c5755b (patch)
tree33dca3157320657f2eca647562e3ad545cc638b9
parent68dda2a2419f6741c6585dad29bdce7f41464ec0 (diff)
downloadmeson-72428b5907caa2f06356308ab014f9d1b2c5755b.zip
meson-72428b5907caa2f06356308ab014f9d1b2c5755b.tar.gz
meson-72428b5907caa2f06356308ab014f9d1b2c5755b.tar.bz2
Xcode: replace all backslashes with eight backslashes. Because obviously.
-rw-r--r--mesonbuild/backend/xcodebackend.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index 54fc229..70d1b8b 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -1405,6 +1405,10 @@ class XCodeBackend(backends.Backend):
if args:
quoted_args = []
for a in args:
+ # This works but
+ # a) it's ugly as sin
+ # b) I don't know why it works or why every backslash must be escaped into eight backslashes
+ a = a.replace(chr(92), 8*chr(92)) # chr(92) is backslash, this how we smuggle it in without Python's quoting grabbing it.
a = a.replace(r'"', r'\\\"')
if ' ' in a:
a = r'\"' + a + r'\"'