diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-10-25 08:37:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-25 08:37:41 +0200 |
commit | 2869c13ba2f1ce2b17f30b611eb1eb7f0fa4a472 (patch) | |
tree | 5bbd1e8aadaac01de33427c84554f342a9199513 | |
parent | 1c4b2a80b63df71974f7cd270d0bf803834a57ee (diff) | |
parent | 72d22482760403eea9279ce976e4cf61cbdb614a (diff) |
Merge pull request #33046 from zatherz/master
Don't terminate search if begin_key doesn't fit (Fixes #33034)
-rw-r--r-- | scene/gui/text_edit.cpp | 67 |
1 files changed, 34 insertions, 33 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 4e45f86d38..a7e87a28ae 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -161,57 +161,58 @@ void TextEdit::Text::_update_line_cache(int p_line) const { /* BEGIN */ int lr = cr.begin_key.length(); - if (lr == 0 || lr > left) - continue; + const CharType *kc; + bool match; - const CharType *kc = cr.begin_key.c_str(); + if (lr != 0 && lr <= left) { + kc = cr.begin_key.c_str(); - bool match = true; + match = true; - for (int k = 0; k < lr; k++) { - if (kc[k] != str[i + k]) { - match = false; - break; + for (int k = 0; k < lr; k++) { + if (kc[k] != str[i + k]) { + match = false; + break; + } } - } - if (match) { + if (match) { - ColorRegionInfo cri; - cri.end = false; - cri.region = j; - text.write[p_line].region_info[i] = cri; - i += lr - 1; + ColorRegionInfo cri; + cri.end = false; + cri.region = j; + text.write[p_line].region_info[i] = cri; + i += lr - 1; - break; + break; + } } /* END */ lr = cr.end_key.length(); - if (lr == 0 || lr > left) - continue; + if (lr != 0 && lr <= left) { + kc = cr.end_key.c_str(); - kc = cr.end_key.c_str(); + match = true; - match = true; - - for (int k = 0; k < lr; k++) { - if (kc[k] != str[i + k]) { - match = false; - break; + for (int k = 0; k < lr; k++) { + if (kc[k] != str[i + k]) { + match = false; + break; + } } - } - if (match) { + if (match) { - ColorRegionInfo cri; - cri.end = true; - cri.region = j; - text.write[p_line].region_info[i] = cri; - i += lr - 1; + ColorRegionInfo cri; + cri.end = true; + cri.region = j; + text.write[p_line].region_info[i] = cri; + i += lr - 1; - break; + break; + } } } } |