mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
brkstr2str_pos: avoid case where length is negative
The string that Qt sees is not the original string, since we add zero-width nonbreaking spaces around it, plus an override character to force rendering direction. This means that translating positions between these two representation can be a bit tricky. We use a max(foo, 0) here to make sure that our intermediate computation is postive. Fixes part of bug #12452.
This commit is contained in:
parent
942538c02d
commit
ec3a44fef5
@ -535,7 +535,7 @@ docstring::size_type brkstr2str_pos(QString brkstr, docstring const & str, int p
|
||||
*/
|
||||
// The variable `brkStrOffset' is here to account for the extra leading characters.
|
||||
// The ending character zerow_nbsp has to be ignored if the line is complete.
|
||||
int const qlen = pos - brkStrOffset - (pos == brkstr.length());
|
||||
int const qlen = max(pos - brkStrOffset - (pos == brkstr.length()), 0);
|
||||
#if QT_VERSION < 0x040801 || QT_VERSION >= 0x050100
|
||||
auto const len = qstring_to_ucs4(brkstr.mid(brkStrOffset, qlen)).length();
|
||||
// Avoid warning
|
||||
|
Loading…
Reference in New Issue
Block a user