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

To fix regression CORE-16467 which was caused
by adding encoding-heuristic in 0.4.13-dev-927-g
e85664a3d8

fix cherry picked from commit 0.4.14-dev-184-g
142d16c8a0
This commit is contained in:
Katayama Hirofumi MZ 2019-11-01 04:41:48 +09:00 committed by Joachim Henze
parent 09d3029dd8
commit c35c7f2c80

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;