diff options
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 10 |
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) |