aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/astinterpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/astinterpreter.py')
-rw-r--r--mesonbuild/astinterpreter.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/mesonbuild/astinterpreter.py b/mesonbuild/astinterpreter.py
index 29a7932..dabd1ba 100644
--- a/mesonbuild/astinterpreter.py
+++ b/mesonbuild/astinterpreter.py
@@ -188,11 +188,20 @@ class AstInterpreter(interpreterbase.InterpreterBase):
for i in range(len(args)):
if self.filename == args[i]:
namespan = node.args.arguments[i].bytespan
- # SUPER HACK! Should track bytespans of commas instead.
- namespan = (namespan[0]-2, namespan[1])
+ # Usually remove the comma after this item but if it is
+ # the last argument, we need to remove the one before.
+ if i >= len(node.args.commas):
+ i -= 1
+ if i < 0:
+ commaspan = (0, 0) # Removed every entry in the list.
+ else:
+ commaspan = node.args.commas[i].bytespan
+ if commaspan[0] < namespan[0]:
+ commaspan, namespan = namespan, commaspan
buildfilename = os.path.join(self.source_root, self.subdir, environment.build_filename)
raw_data = open(buildfilename, 'r').read()
- updated = raw_data[0:namespan[0]] + raw_data[namespan[1]:]
+ intermediary = raw_data[0:commaspan[0]] + raw_data[commaspan[1]:]
+ updated = intermediary[0:namespan[0]] + intermediary[namespan[1]:]
open(buildfilename, 'w').write(updated)
sys.exit(0)
sys.exit('Could not find source %s in target %s.' % (self.filename, args[0]))