diff options
-rw-r--r-- | src/fs/Path.hxx | 2 | ||||
-rw-r--r-- | src/fs/Traits.hxx | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/fs/Path.hxx b/src/fs/Path.hxx index 962518896..3ff7ddba2 100644 --- a/src/fs/Path.hxx +++ b/src/fs/Path.hxx @@ -129,7 +129,7 @@ public: */ gcc_pure bool HasNewline() const { - return strchr(value, '\n') != nullptr; + return PathTraitsFS::Find(value, '\n') != nullptr; } /** diff --git a/src/fs/Traits.hxx b/src/fs/Traits.hxx index 9591290f7..0860dfb8a 100644 --- a/src/fs/Traits.hxx +++ b/src/fs/Traits.hxx @@ -101,6 +101,16 @@ struct PathTraitsFS { return char_traits::length(p); } + gcc_pure gcc_nonnull_all + static const_pointer Find(const_pointer p, size_t n, value_type ch) { + return char_traits::find(p, n, ch); + } + + gcc_pure gcc_nonnull_all + static const_pointer Find(const_pointer p, value_type ch) { + return strchr(p, ch); + } + /** * Determine the "base" file name of the given native path. * The return value points inside the given string. @@ -195,6 +205,16 @@ struct PathTraitsUTF8 { return char_traits::length(p); } + gcc_pure gcc_nonnull_all + static const_pointer Find(const_pointer p, size_t n, value_type ch) { + return char_traits::find(p, n, ch); + } + + gcc_pure gcc_nonnull_all + static const_pointer Find(const_pointer p, value_type ch) { + return strchr(p, ch); + } + /** * Determine the "base" file name of the given UTF-8 path. * The return value points inside the given string. |