aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2015-03-03 12:39:13 +0100
committerMax Kellermann <max@duempel.org>2015-03-03 12:44:07 +0100
commitb0983e8708669fb60ac78ca1248957e1a9d7b84d (patch)
treec90b01d4ce4ea131564ad0ab257dabba021161b8
parent0febb218ed1ab5b530f4f3a62e0321678f41fb96 (diff)
downloadmpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.tar.gz
mpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.tar.xz
mpd-b0983e8708669fb60ac78ca1248957e1a9d7b84d.zip
fs/Traits: add Find()
-rw-r--r--src/fs/Path.hxx2
-rw-r--r--src/fs/Traits.hxx20
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.