[NOTEPAD] Prioritize ASCII over UTF-8 (#2006)

CORE-16467
This commit is contained in:
Katayama Hirofumi MZ 2019-11-01 04:41:48 +09:00 committed by GitHub
parent 1f80221ce5
commit 142d16c8a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;