]> git.lyx.org Git - features.git/blobdiff - src/support/lstrings.h
Improve LaTeX format detection
[features.git] / src / support / lstrings.h
index eca670ea3d435f6b78c92f9825ee7489ea0f12a9..2606546fa05ce3c29cdb5c0c47341e83e1fd814c 100644 (file)
@@ -18,7 +18,6 @@
 
 #include "support/docstring.h"
 
-#include <string>
 #include <vector>
 
 
@@ -45,7 +44,9 @@ bool isStrUnsignedInt(std::string const & str);
 bool isStrDbl(std::string const & str);
 
 /// does the string contain a digit?
-bool hasDigit(docstring const & str);
+bool hasDigitASCII(docstring const & str);
+
+bool isHexChar(char_type);
 
 bool isHex(docstring const & str);
 
@@ -187,6 +188,9 @@ std::string const subst(std::string const & a,
 docstring const subst(docstring const & a,
                docstring const & oldstr, docstring const & newstr);
 
+/// Count all occurences of char \a chr inside \a str
+int count_char(std::string const & str, char chr);
+
 /// Count all occurences of char \a chr inside \a str
 int count_char(docstring const & str, docstring::value_type chr);
 
@@ -227,6 +231,7 @@ docstring const ltrim(docstring const & a, char const * p = " ");
     will be the whole of the string if no delimiter is found.
     The return value is what follows delim, if anything. So the return
     value is the null string if no delimiter is found.
+    'a' and 'piece' must be different variables.
     Examples:
     \code
     s1= "a;bc"; s2= ""
@@ -241,6 +246,7 @@ 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);
+docstring const rsplit(docstring const & a, docstring & piece, char_type delim);
 docstring const rsplit(docstring const & a, char_type delim);
 
 /// Escapes non ASCII chars and other problematic characters that cause