X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Flstrings.cpp;h=8ffab19c7ef14b9a8f2a4fe0b3cbd371ac68e3ff;hb=5d3d26b0241da8f28e0b6b7cce23a8c5761e43de;hp=0dd8075e03287344ab3989c171fbe368d2935bc0;hpb=9c1142c88061ed357b8f15bc151707a07303f3ea;p=lyx.git diff --git a/src/support/lstrings.cpp b/src/support/lstrings.cpp index 0dd8075e03..8ffab19c7e 100644 --- a/src/support/lstrings.cpp +++ b/src/support/lstrings.cpp @@ -182,6 +182,18 @@ bool isASCII(char_type c) } +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) @@ -1168,7 +1180,8 @@ docstring const escape(docstring const & lab) 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 @@ -1190,6 +1203,16 @@ docstring const escape(docstring const & lab) } +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)