From 142d16c8a0fd7c02a0cb195ae6929eadae522fb4 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Fri, 1 Nov 2019 04:41:48 +0900 Subject: [PATCH] [NOTEPAD] Prioritize ASCII over UTF-8 (#2006) CORE-16467 --- base/applications/notepad/text.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/base/applications/notepad/text.c b/base/applications/notepad/text.c index d22cf4817ee..0afdde89b6c 100644 --- a/base/applications/notepad/text.c +++ b/base/applications/notepad/text.c @@ -48,6 +48,19 @@ static BOOL Append(LPWSTR *ppszText, DWORD *pdwTextLen, LPCWSTR pszAppendText, D return TRUE; } +BOOL IsTextNonZeroASCII(const void *pText, DWORD dwSize) +{ + const signed char *pBytes = pText; + while (dwSize-- > 0) + { + if (*pBytes <= 0) + return FALSE; + + ++pBytes; + } + return TRUE; +} + ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) { INT flags = IS_TEXT_UNICODE_STATISTICS; @@ -55,6 +68,11 @@ ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) if (dwSize <= 1) return ENCODING_ANSI; + if (IsTextNonZeroASCII(pBytes, dwSize)) + { + return ENCODING_ANSI; + } + if (IsTextUnicode(pBytes, dwSize, &flags)) { return ENCODING_UTF16LE;