aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hirsch, Ph.D <scivision@users.noreply.github.com>2019-11-17 00:22:53 -0500
committerMichael Hirsch, Ph.D <scivision@users.noreply.github.com>2019-11-17 00:22:53 -0500
commit0cb48cdc793dfce8c5eeb17e447cbe169e1836d7 (patch)
tree2a85b48a1b5f109612d8f3fc8723341679ef4480
parent2ae96f859583ed1aa1e78df73ba2895a2604fa8b (diff)
downloadmeson-0cb48cdc793dfce8c5eeb17e447cbe169e1836d7.zip
meson-0cb48cdc793dfce8c5eeb17e447cbe169e1836d7.tar.gz
meson-0cb48cdc793dfce8c5eeb17e447cbe169e1836d7.tar.bz2
fs: make replace_suffix not expand file to absolute path, just manipulate the string
-rw-r--r--docs/markdown/Fs-module.md2
-rw-r--r--mesonbuild/modules/fs.py2
-rw-r--r--test cases/common/227 fs module/meson.build8
3 files changed, 6 insertions, 6 deletions
diff --git a/docs/markdown/Fs-module.md b/docs/markdown/Fs-module.md
index 9a3ab10..45cb589 100644
--- a/docs/markdown/Fs-module.md
+++ b/docs/markdown/Fs-module.md
@@ -73,7 +73,7 @@ fs.samefile(x, z) # true
The `replace_suffix` method is a *string manipulation* convenient for filename modifications.
It allows changing the filename suffix like:
-## swap suffix
+#### swap suffix
```meson
original = '/opt/foo.ini'
diff --git a/mesonbuild/modules/fs.py b/mesonbuild/modules/fs.py
index 0c8ed8e..86861ae 100644
--- a/mesonbuild/modules/fs.py
+++ b/mesonbuild/modules/fs.py
@@ -114,7 +114,7 @@ class FSModule(ExtensionModule):
def replace_suffix(self, state: 'ModuleState', args: typing.Sequence[str], kwargs: dict) -> ModuleReturnValue:
if len(args) != 2:
MesonException('method takes exactly two arguments.')
- original = PurePath(state.source_root) / state.subdir / args[0]
+ original = PurePath(args[0])
new = original.with_suffix(args[1])
return ModuleReturnValue(str(new), [])
diff --git a/test cases/common/227 fs module/meson.build b/test cases/common/227 fs module/meson.build
index ec9ca93..3c452d0 100644
--- a/test cases/common/227 fs module/meson.build
+++ b/test cases/common/227 fs module/meson.build
@@ -25,19 +25,19 @@ assert(not fs.is_file('~'), 'expanduser not working')
original = 'foo.txt'
new = fs.replace_suffix(original, '.ini')
-assert(new.endswith('foo.ini') and not new.contains('.txt'), 'replace_suffix failed')
+assert(new == 'foo.ini', 'replace_suffix failed')
original = 'foo'
new = fs.replace_suffix(original, '.ini')
-assert(new.endswith('foo.ini'), 'replace_suffix did not add suffix to suffixless file')
+assert(new == 'foo.ini', 'replace_suffix did not add suffix to suffixless file')
original = 'foo.dll.a'
new = fs.replace_suffix(original, '.so')
-assert(new.endswith('foo.dll.so'), 'replace_suffix did not only modify last suffix')
+assert(new == 'foo.dll.so', 'replace_suffix did not only modify last suffix')
original = 'foo.dll'
new = fs.replace_suffix(original, '')
-assert(new.endswith('foo'), 'replace_suffix did not only delete last suffix')
+assert(new == 'foo', 'replace_suffix did not only delete last suffix')
# `/` on windows is interpreted like `.drive` which in general may not be `c:/`
# the files need not exist for fs.replace_suffix()