}
+bool isOpenPunctuation(char_type c)
+{
+ if (!is_utf16(c)) {
+ // assume that no non-utf16 character is an op
+ // c outside the UCS4 range is catched as well
+ return false;
+ }
+ QChar const qc = ucs4_to_qchar(c);
+ return qc.category() == QChar::Punctuation_Open;
+}
+
+
namespace support {
int compare_no_case(docstring const & s, docstring const & s2)
int compare_locale(docstring const & s, docstring const & s2)
{
- // FIXME We have a report that this does not work on windows (bug 9030)
- try
- {
- string const l = to_local8bit(s);
- string const r = to_local8bit(s2);
- return strcoll(l.c_str(), r.c_str());
- }
- catch (bad_cast & e)
- {
- // fall back to builtin sorting
- LYXERR0("Could not compare using the current locale: "
- << e.what() << ", using fallback.");
- if (s < s2)
- return -1;
- if (s > s2)
- return 1;
- return 0;
- }
+ return QString::localeAwareCompare(toqstr(s), toqstr(s2));
}
}
+bool containsOnly(docstring const & s, string const & cset)
+{
+ return s.find_first_not_of(from_ascii(cset)) == string::npos;
+}
+
+
// ale970405+lasgoutt-970425
// rewritten to use new string (Lgb)
string const token(string const & a, char delim, int n)
for (size_t i = 0; i < lab.length(); ++i) {
char_type c = lab[i];
if (c >= 128 || c == '=' || c == '%' || c == '#' || c == '$'
- || c == '}' || c == '{' || c == ']' || c == '[' || c == '&') {
+ || c == '}' || c == '{' || c == ']' || c == '[' || c == '&'
+ || c == '\\') {
// Although char_type is a 32 bit type we know that
// UCS4 occupies only 21 bits, so we don't need to
// encode bigger values. Test for 2^24 because we
}
+docstring const protectArgument(docstring & arg, char const l,
+ char const r)
+{
+ if (contains(arg, l) || contains(arg, r))
+ // protect brackets
+ arg = '{' + arg + '}';
+ return arg;
+}
+
+
bool truncateWithEllipsis(docstring & str, size_t const len)
{
if (str.size() <= len)
}
-template<>
docstring bformat(docstring const & fmt, int arg1)
{
LATTEST(contains(fmt, from_ascii("%1$d")));
}
-template<>
docstring bformat(docstring const & fmt, long arg1)
{
LATTEST(contains(fmt, from_ascii("%1$d")));
}
-template<>
+#ifdef LYX_USE_LONG_LONG
+docstring bformat(docstring const & fmt, long long arg1)
+{
+ LATTEST(contains(fmt, from_ascii("%1$d")));
+ docstring const str = subst(fmt, from_ascii("%1$d"), convert<docstring>(arg1));
+ return subst(str, from_ascii("%%"), from_ascii("%"));
+}
+#endif
+
+
docstring bformat(docstring const & fmt, unsigned int arg1)
{
LATTEST(contains(fmt, from_ascii("%1$d")));
}
-template<>
-docstring bformat(docstring const & fmt, docstring arg1)
+docstring bformat(docstring const & fmt, docstring const & arg1)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
docstring const str = subst(fmt, from_ascii("%1$s"), arg1);
}
-template<>
docstring bformat(docstring const & fmt, char * arg1)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
}
-template<>
-docstring bformat(docstring const & fmt, docstring arg1, docstring arg2)
+docstring bformat(docstring const & fmt, docstring const & arg1, docstring const & arg2)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
LATTEST(contains(fmt, from_ascii("%2$s")));
}
-template<>
-docstring bformat(docstring const & fmt, docstring arg1, int arg2)
+docstring bformat(docstring const & fmt, docstring const & arg1, int arg2)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
LATTEST(contains(fmt, from_ascii("%2$d")));
}
-template<>
-docstring bformat(docstring const & fmt, char const * arg1, docstring arg2)
+docstring bformat(docstring const & fmt, char const * arg1, docstring const & arg2)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
LATTEST(contains(fmt, from_ascii("%2$s")));
}
-template<>
docstring bformat(docstring const & fmt, int arg1, int arg2)
{
LATTEST(contains(fmt, from_ascii("%1$d")));
}
-template<>
-docstring bformat(docstring const & fmt, docstring arg1, docstring arg2, docstring arg3)
+docstring bformat(docstring const & fmt, docstring const & arg1, docstring const & arg2, docstring const & arg3)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
LATTEST(contains(fmt, from_ascii("%2$s")));
}
-template<>
docstring bformat(docstring const & fmt,
- docstring arg1, docstring arg2, docstring arg3, docstring arg4)
+ docstring const & arg1, docstring const & arg2, docstring const & arg3, docstring const & arg4)
{
LATTEST(contains(fmt, from_ascii("%1$s")));
LATTEST(contains(fmt, from_ascii("%2$s")));