]> git.lyx.org Git - lyx.git/blobdiff - src/support/lstrings.h
hopefully fix tex2lyx linking.
[lyx.git] / src / support / lstrings.h
index 0f10743b03f9753bb001569f3ab496bfc8778003..21d57eeb91380727a1cbe65a4a8d1c299477170e 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.
@@ -199,7 +216,8 @@ std::string const split(std::string const & a, char delim);
 /// Same as split but uses the last delim.
 std::string const rsplit(std::string const & a, std::string & piece, char delim);
 
-/// Escapes non ASCII chars
+/// Escapes non ASCII chars and other problematic characters that cause
+/// problems in latex labels.
 docstring const escape(docstring const & lab);
 
 /// gives a vector of stringparts which have the delimiter delim