File tree Expand file tree Collapse file tree 1 file changed +7
-6
lines changed Expand file tree Collapse file tree 1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -484,13 +484,14 @@ static bool ends_with(const std::string & str, const std::string & suffix) {
484
484
485
485
static size_t find_partial_stop_string (const std::string &stop, const std::string &text) {
486
486
if (!text.empty () && !stop.empty ()) {
487
- auto it = std::find (stop.rbegin (), stop.rend (), text.back ());
488
- while (it != stop.rend ()) {
489
- size_t length = std::distance (it, stop.rend ());
490
- if (text.length () >= length && 0 == text.compare (text.length () - length, length, stop)) {
491
- return text.length () - length;
487
+ const char text_last_char = text.back ();
488
+ for (int64_t char_index = stop.size () - 1 ; char_index >= 0 ; char_index--) {
489
+ if (stop[char_index] == text_last_char) {
490
+ const std::string current_partial = stop.substr (0 , char_index + 1 );
491
+ if (ends_with (text, current_partial)) {
492
+ return text.size () - char_index - 1 ;
493
+ }
492
494
}
493
- it = std::find (std::next (it), stop.rend (), text.back ());
494
495
}
495
496
}
496
497
You can’t perform that action at this time.
0 commit comments