]> git.lyx.org Git - lyx.git/blobdiff - src/support/lstrings.h
Make it possible to uses non-ascii labelstring, endlabelstring and
[lyx.git] / src / support / lstrings.h
index 0f10743b03f9753bb001569f3ab496bfc8778003..16288e6f44350e59b76ae653bbba5014bee6394f 100644 (file)
@@ -68,6 +68,13 @@ bool isStrUnsignedInt(std::string const & str);
 ///
 bool isStrDbl(std::string const & str);
 
+bool isHex(lyx::docstring const & str);
+
+int hexToInt(lyx::docstring const & str);
+
+/// is \p str pure ascii?
+bool isAscii(docstring const & str);
+
 ///
 char lowercase(char c);
 
@@ -100,14 +107,22 @@ bool suffixIs(std::string const &, char);
 bool suffixIs(std::string const &, std::string const &);
 
 ///
-template <typename B>
-bool contains(std::string const & a, B b)
+inline bool contains(std::string const & a, std::string const & b)
+{
+       return a.find(b) != std::string::npos;
+}
+
+inline bool contains(docstring const & a, docstring const & b)
+{
+       return a.find(b) != docstring::npos;
+}
+
+inline bool contains(std::string const & a, char b)
 {
        return a.find(b) != std::string::npos;
 }
 
-template <typename B>
-bool contains(docstring const & a, B b)
+inline bool contains(docstring const & a, char_type b)
 {
        return a.find(b) != docstring::npos;
 }
@@ -173,13 +188,15 @@ std::string const trim(std::string const & a, char const * p = " ");
     \endcode
 */
 std::string const rtrim(std::string const & a, char const * p = " ");
+docstring const rtrim(docstring const & a, char const * p = " ");
 
 /** Trims characters off the beginning of a string.
     \code
-   ltrim("ababcdef", "ab") = "cdef"
+   ("ababcdef", "ab") = "cdef"
     \endcode
 */
 std::string const ltrim(std::string const & a, char const * p = " ");
+docstring const ltrim(docstring const & a, char const * p = " ");
 
 /** Splits the string by the first delim.
     Splits the string by the first appearance of delim.