aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index cb82e56..9bb311f 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -449,6 +449,16 @@ class InterpreterBase:
return obj % 2 != 0
else:
raise InterpreterException('int.is_odd() must have no arguments.')
+ elif method_name == 'to_string':
+ if not posargs:
+ return str(obj)
+ elif len(posargs) == 1 and isinstance(posargs[0], str):
+ f = 'd' if len(posargs[0].strip()) == 0 else posargs[0]
+ if re.match('^[bcdoxX]$', f) is None:
+ raise InvalidCode('Invalid format for int to string conversion "%s"' % f)
+ return str(('{:' + f + '}').format(obj))
+ else:
+ raise InterpreterException('int.to_string() must have either no arguments or exactly one string arguments that signify what format to use.')
else:
raise InterpreterException('Unknown method "%s" for an integer.' % method_name)