diff options
author | Max Kellermann <max@duempel.org> | 2015-03-03 12:39:13 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2015-03-03 12:44:07 +0100 |
commit | b0983e8708669fb60ac78ca1248957e1a9d7b84d (patch) | |
tree | c90b01d4ce4ea131564ad0ab257dabba021161b8 /src/fs | |
parent | 0febb218ed1ab5b530f4f3a62e0321678f41fb96 (diff) | |
download | mpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.tar.gz mpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.tar.xz mpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.zip |
fs/Traits: add Find()
Diffstat (limited to 'src/fs')
-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. |