X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Flstrings.h;h=9130f687c8b1c564faaa38c5d6c7c5eef929fdb0;hb=741bd1221aa56a6e278d6f8280a0dd7e2e901cac;hp=186f3cc948fc6ee9e29951134852c5b73b654075;hpb=fdd5134a24ed75da7b65b2070632e9efb25265ed;p=features.git diff --git a/src/support/lstrings.h b/src/support/lstrings.h index 186f3cc948..9130f687c8 100644 --- a/src/support/lstrings.h +++ b/src/support/lstrings.h @@ -18,7 +18,7 @@ #include "support/docstring.h" -#include +#include #include @@ -35,28 +35,6 @@ int compare_ascii_no_case(std::string const & s, std::string const & s2); /// Compare \p s and \p s2, ignoring the case of ASCII characters only. int compare_ascii_no_case(docstring const & s, docstring const & s2); -/// -inline -int compare(char const * a, char const * b) -{ -#ifndef CXX_GLOBAL_CSTD - return std::strcmp(a, b); -#else - return strcmp(a, b); -#endif -} - -/// -inline -int compare(char const * a, char const * b, unsigned int len) -{ -#ifndef CXX_GLOBAL_CSTD - return std::strncmp(a, b, len); -#else - return strncmp(a, b, len); -#endif -} - /// bool isStrInt(std::string const & str); @@ -66,9 +44,9 @@ bool isStrUnsignedInt(std::string const & str); /// bool isStrDbl(std::string const & str); -bool isHex(lyx::docstring const & str); +bool isHex(docstring const & str); -int hexToInt(lyx::docstring const & str); +int hexToInt(docstring const & str); /// is \p str pure ascii? bool isAscii(docstring const & str); @@ -114,19 +92,20 @@ docstring const lowercase(docstring const & s); /// Does not depend on the locale. docstring const uppercase(docstring const & s); -/// Does the string start with this prefix? -bool prefixIs(docstring const &, char_type); +/// Does str start with c? +bool prefixIs(docstring const & str, char_type c); -/// Does the std::string start with this prefix? -bool prefixIs(std::string const &, std::string const &); -bool prefixIs(docstring const &, docstring const &); +/// Does str start with pre? +bool prefixIs(std::string const & str, std::string const & pre); +bool prefixIs(docstring const & str, docstring const & pre); /// Does the string end with this char? bool suffixIs(std::string const &, char); bool suffixIs(docstring const &, char_type); -/// Does the std::string end with this suffix? +/// Does the string end with this suffix? bool suffixIs(std::string const &, std::string const &); +bool suffixIs(docstring const &, docstring const &); /// inline bool contains(std::string const & a, std::string const & b) @@ -174,6 +153,7 @@ docstring const token(docstring const & a, char_type delim, int n); \endcode */ int tokenPos(std::string const & a, char delim, std::string const & tok); +int tokenPos(docstring const & a, char_type delim, docstring const & tok); /// Substitute all \a oldchar with \a newchar @@ -204,9 +184,10 @@ docstring const trim(docstring const & a, char const * p = " "); */ std::string const trim(std::string const & a, char const * p = " "); -/** Trims characters off the end of a string. +/** Trims characters off the end of a string, removing any character + in p. \code - rtrim("abccc", "c") == "ab". + rtrim("abcde", "dec") == "ab". \endcode */ std::string const rtrim(std::string const & a, char const * p = " "); @@ -214,7 +195,7 @@ docstring const rtrim(docstring const & a, char const * p = " "); /** Trims characters off the beginning of a string. \code - ("ababcdef", "ab") = "cdef" + ("abbabcdef", "ab") = "cdef" \endcode */ std::string const ltrim(std::string const & a, char const * p = " "); @@ -246,10 +227,12 @@ std::string const rsplit(std::string const & a, std::string & piece, char delim) docstring const escape(docstring const & lab); /// gives a vector of stringparts which have the delimiter delim +/// If \p keepempty is true, empty strings will be pushed to the vector as well std::vector const getVectorFromString(std::string const & str, - std::string const & delim = std::string(",")); + std::string const & delim = std::string(","), + bool keepempty = false); std::vector const getVectorFromString(docstring const & str, - docstring const & delim = from_ascii(",")); + docstring const & delim = from_ascii(","), bool keepempty = false); // the same vice versa std::string const getStringFromVector(std::vector const & vec, @@ -279,6 +262,18 @@ template docstring bformat(docstring const & fmt, Arg1, Arg2, Arg3, Arg4); +template<> docstring bformat(docstring const & fmt, int arg1); +template<> docstring bformat(docstring const & fmt, long arg1); +template<> docstring bformat(docstring const & fmt, unsigned int arg1); +template<> docstring bformat(docstring const & fmt, docstring arg1); +template<> docstring bformat(docstring const & fmt, char * arg1); +template<> docstring bformat(docstring const & fmt, docstring arg1, docstring arg2); +template<> docstring bformat(docstring const & fmt, char const * arg1, docstring arg2); +template<> docstring bformat(docstring const & fmt, int arg1, int arg2); +template<> docstring bformat(docstring const & fmt, docstring arg1, docstring arg2, docstring arg3); +template<> docstring bformat(docstring const & fmt, docstring arg1, docstring arg2, docstring arg3, docstring arg4); + + } // namespace support } // namespace lyx