| Index: Source/core/editing/iterators/CharacterIterator.cpp
|
| diff --git a/Source/core/editing/iterators/CharacterIterator.cpp b/Source/core/editing/iterators/CharacterIterator.cpp
|
| index 9d5e55558487e6d80b2dc1c8336af2fcf4b2af37..87b26095c342440cdd5d4fcff826672ee3d537e0 100644
|
| --- a/Source/core/editing/iterators/CharacterIterator.cpp
|
| +++ b/Source/core/editing/iterators/CharacterIterator.cpp
|
| @@ -475,7 +475,11 @@ inline bool SearchBuffer::isWordStartMatch(size_t start, size_t length) const
|
| size_t wordBreakSearchStart = start + length;
|
| while (wordBreakSearchStart > start)
|
| wordBreakSearchStart = findNextWordFromIndex(m_buffer.data(), m_buffer.size(), wordBreakSearchStart, false /* backwards */);
|
| - return wordBreakSearchStart == start;
|
| + if (wordBreakSearchStart != start)
|
| + return false;
|
| + if (m_options & WholeWord)
|
| + return static_cast<int>(start + length) == findWordEndBoundary(m_buffer.data(), m_buffer.size(), wordBreakSearchStart);
|
| + return true;
|
| }
|
|
|
| inline size_t SearchBuffer::search(size_t& start)
|
|
|