From 65da4c42c4fa01162ddc3cc4a76ec51739e3177c Mon Sep 17 00:00:00 2001 From: Evgeny Pestov Date: Fri, 17 Dec 2021 00:18:08 +0700 Subject: [PATCH] CEdit::DeleteOne expands selection to delete integer number of UTF-8 symbols --- src/ui/controls/edit.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ui/controls/edit.cpp b/src/ui/controls/edit.cpp index 75bb8cbf..d9d31605 100644 --- a/src/ui/controls/edit.cpp +++ b/src/ui/controls/edit.cpp @@ -2787,6 +2787,11 @@ void CEdit::DeleteOne(int dir) } if ( m_cursor1 > m_cursor2 ) Math::Swap(m_cursor1, m_cursor2); + + // Expands selection to delete integer number of UTF-8 symbols + while ( m_cursor1 > 0 && (m_text[m_cursor1] & 0xC0) == 0x80 ) m_cursor1 --; + while ( m_cursor2 < m_len && (m_text[m_cursor2] & 0xC0) == 0x80 ) m_cursor2 ++; + hole = m_cursor2-m_cursor1; end = m_len-hole; for ( i=m_cursor1 ; i