https://git.reactos.org/?p=reactos.git;a=commitdiff;h=142d16c8a0fd7c02a0cb195ae6929eadae522fb4
commit 142d16c8a0fd7c02a0cb195ae6929eadae522fb4 Author: Katayama Hirofumi MZ <[email protected]> AuthorDate: Fri Nov 1 04:41:48 2019 +0900 Commit: GitHub <[email protected]> CommitDate: Fri Nov 1 04:41:48 2019 +0900 [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;
