///
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);
/// same as lowercase(), but ignores locale
std::string const ascii_lowercase(std::string const &);
+docstring const ascii_lowercase(docstring const &);
///
std::string const lowercase(std::string const &);
+docstring const lowercase(docstring const &);
///
std::string const uppercase(std::string const &);
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;
}
\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.
/// 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
std::vector<std::string> const getVectorFromString(std::string const & str,
std::string const & delim = std::string(","));
+std::vector<docstring> const getVectorFromString(docstring const & str,
+ docstring const & delim = from_ascii(","));
// the same vice versa
std::string const getStringFromVector(std::vector<std::string> const & vec,