diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-22 22:04:18 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-22 22:04:18 +0300 |
commit | bea6b1a6f64d93a0f4dc129d209cbc49b5e39df4 (patch) | |
tree | 539c2e3956f5b05e820472d3748e99f0c9c4d68a /mesonbuild/interpreterbase.py | |
parent | be0aa7fd740d5808975868e32649c464e031f526 (diff) | |
parent | 177283d203a6c9f4355a90ca12c0105298a23a74 (diff) | |
download | meson-bea6b1a6f64d93a0f4dc129d209cbc49b5e39df4.zip meson-bea6b1a6f64d93a0f4dc129d209cbc49b5e39df4.tar.gz meson-bea6b1a6f64d93a0f4dc129d209cbc49b5e39df4.tar.bz2 |
Merge pull request #2187 from centricular/fix-pcap-dependency
Fix pcap dependency, str.strip() now takes an argument, add cc.get_return_value()
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index d2e2ab3..1dd2f02 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -450,9 +450,25 @@ class InterpreterBase: else: raise InterpreterException('Unknown method "%s" for an integer.' % method_name) + @staticmethod + def _get_one_string_posarg(posargs, method_name): + if len(posargs) > 1: + m = '{}() must have zero or one arguments' + raise InterpreterException(m.format(method_name)) + elif len(posargs) == 1: + s = posargs[0] + if not isinstance(s, str): + m = '{}() argument must be a string' + raise InterpreterException(m.format(method_name)) + return s + return None + def string_method_call(self, obj, method_name, args): (posargs, _) = self.reduce_arguments(args) if method_name == 'strip': + s = self._get_one_string_posarg(posargs, 'strip') + if s is not None: + return obj.strip(s) return obj.strip() elif method_name == 'format': return self.format_string(obj, args) @@ -463,15 +479,10 @@ class InterpreterBase: elif method_name == 'underscorify': return re.sub(r'[^a-zA-Z0-9]', '_', obj) elif method_name == 'split': - if len(posargs) > 1: - raise InterpreterException('Split() must have at most one argument.') - elif len(posargs) == 1: - s = posargs[0] - if not isinstance(s, str): - raise InterpreterException('Split() argument must be a string') + s = self._get_one_string_posarg(posargs, 'split') + if s is not None: return obj.split(s) - else: - return obj.split() + return obj.split() elif method_name == 'startswith' or method_name == 'contains' or method_name == 'endswith': s = posargs[0] if not isinstance(s, str): |