mirror of
https://github.com/reactos/reactos.git
synced 2024-06-25 23:41:35 +00:00
[NOTEPAD] Make "UTF-8 without BOM" default (#5081)
- Define a constant ENCODING_DEFAULT that is equal to ENCODING_UTF8. - Initialize Globals.encFile as ENCODING_DEFAULT. - Reset encoding and line ending in DIALOG_FileNew. - AnalyzeEncoding returns ENCODING_DEFAULT for non-zero ASCII text. - Remove unnecessary DIALOG_StatusBarAlignParts calls. CORE-18837
This commit is contained in:
parent
b2cac5cd6c
commit
f7f2ed201a
|
@ -167,7 +167,6 @@ static VOID DIALOG_StatusBarUpdateEncoding(VOID)
|
|||
|
||||
static VOID DIALOG_StatusBarUpdateAll(VOID)
|
||||
{
|
||||
DIALOG_StatusBarAlignParts();
|
||||
DIALOG_StatusBarUpdateCaretPos();
|
||||
DIALOG_StatusBarUpdateLineEndings();
|
||||
DIALOG_StatusBarUpdateEncoding();
|
||||
|
@ -405,8 +404,6 @@ BOOL DoCloseFile(VOID)
|
|||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
return FALSE;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -463,24 +460,26 @@ VOID DoOpenFile(LPCTSTR szFileName)
|
|||
SetFileName(szFileName);
|
||||
UpdateWindowCaption(TRUE);
|
||||
NOTEPAD_EnableSearchMenu();
|
||||
DIALOG_StatusBarUpdateAll();
|
||||
|
||||
done:
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
CloseHandle(hFile);
|
||||
|
||||
DIALOG_StatusBarUpdateAll();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileNew(VOID)
|
||||
{
|
||||
/* Close any files and prompt to save changes */
|
||||
if (DoCloseFile()) {
|
||||
SetWindowText(Globals.hEdit, empty_str);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
SetFocus(Globals.hEdit);
|
||||
NOTEPAD_EnableSearchMenu();
|
||||
DIALOG_StatusBarUpdateAll();
|
||||
}
|
||||
if (!DoCloseFile())
|
||||
return;
|
||||
|
||||
SetWindowText(Globals.hEdit, NULL);
|
||||
SendMessage(Globals.hEdit, EM_EMPTYUNDOBUFFER, 0, 0);
|
||||
Globals.iEoln = EOLN_CRLF;
|
||||
Globals.encFile = ENCODING_DEFAULT;
|
||||
|
||||
NOTEPAD_EnableSearchMenu();
|
||||
DIALOG_StatusBarUpdateAll();
|
||||
}
|
||||
|
||||
VOID DIALOG_FileNewWindow(VOID)
|
||||
|
@ -930,7 +929,7 @@ VOID DoShowHideStatusBar(VOID)
|
|||
}
|
||||
|
||||
/* Update layout of controls */
|
||||
PostMessageW(Globals.hMainWnd, WM_SIZE, 0, 0);
|
||||
SendMessageW(Globals.hMainWnd, WM_SIZE, 0, 0);
|
||||
|
||||
if (Globals.hStatusBar == NULL)
|
||||
return;
|
||||
|
|
|
@ -580,6 +580,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE prev, LPTSTR cmdline, int sh
|
|||
|
||||
ZeroMemory(&Globals, sizeof(Globals));
|
||||
Globals.hInstance = hInstance;
|
||||
Globals.encFile = ENCODING_DEFAULT;
|
||||
NOTEPAD_LoadSettingsFromRegistry();
|
||||
|
||||
ZeroMemory(&wndclass, sizeof(wndclass));
|
||||
|
|
|
@ -44,8 +44,7 @@ typedef enum
|
|||
ENCODING_UTF8BOM = 4
|
||||
} ENCODING;
|
||||
|
||||
// #define MIN_ENCODING 0
|
||||
// #define MAX_ENCODING 3
|
||||
#define ENCODING_DEFAULT ENCODING_UTF8 // ENCODING_ANSI
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
|
@ -24,25 +24,25 @@
|
|||
#include "notepad.h"
|
||||
#include <assert.h>
|
||||
|
||||
BOOL IsTextNonZeroASCII(const void *pText, DWORD dwSize)
|
||||
static BOOL IsTextNonZeroASCII(LPCVOID pText, DWORD dwSize)
|
||||
{
|
||||
const signed char *pBytes = pText;
|
||||
const signed char *pch = pText;
|
||||
while (dwSize-- > 0)
|
||||
{
|
||||
if (*pBytes <= 0)
|
||||
if (*pch <= 0)
|
||||
return FALSE;
|
||||
|
||||
++pBytes;
|
||||
++pch;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize)
|
||||
static ENCODING AnalyzeEncoding(const BYTE *pBytes, DWORD dwSize)
|
||||
{
|
||||
INT flags = IS_TEXT_UNICODE_STATISTICS | IS_TEXT_UNICODE_REVERSE_STATISTICS;
|
||||
|
||||
if (dwSize <= 1 || IsTextNonZeroASCII(pBytes, dwSize))
|
||||
return ENCODING_ANSI;
|
||||
if (IsTextNonZeroASCII(pBytes, dwSize))
|
||||
return ENCODING_DEFAULT;
|
||||
|
||||
if (IsTextUnicode(pBytes, dwSize, &flags))
|
||||
return ENCODING_UTF16LE;
|
||||
|
@ -51,7 +51,7 @@ ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize)
|
|||
return ENCODING_UTF16BE;
|
||||
|
||||
/* is it UTF-8? */
|
||||
if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, pBytes, dwSize, NULL, 0))
|
||||
if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, (LPCSTR)pBytes, dwSize, NULL, 0))
|
||||
return ENCODING_UTF8;
|
||||
|
||||
return ENCODING_ANSI;
|
||||
|
@ -170,7 +170,7 @@ ReadText(HANDLE hFile, HLOCAL *phLocal, ENCODING *pencFile, EOLN *piEoln)
|
|||
DWORD dwSize, dwPos;
|
||||
SIZE_T i, cchText, cbContent;
|
||||
BOOL bSuccess = FALSE;
|
||||
ENCODING encFile = ENCODING_ANSI;
|
||||
ENCODING encFile;
|
||||
UINT iCodePage;
|
||||
HANDLE hMapping = INVALID_HANDLE_VALUE;
|
||||
HLOCAL hNewLocal;
|
||||
|
@ -191,7 +191,7 @@ ReadText(HANDLE hFile, HLOCAL *phLocal, ENCODING *pencFile, EOLN *piEoln)
|
|||
|
||||
*phLocal = hNewLocal;
|
||||
*piEoln = EOLN_CRLF;
|
||||
*pencFile = ENCODING_UTF8;
|
||||
*pencFile = ENCODING_DEFAULT;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ ReadText(HANDLE hFile, HLOCAL *phLocal, ENCODING *pencFile, EOLN *piEoln)
|
|||
}
|
||||
else
|
||||
{
|
||||
encFile = AnalyzeEncoding((LPCSTR)pBytes, dwSize);
|
||||
encFile = AnalyzeEncoding(pBytes, dwSize);
|
||||
}
|
||||
|
||||
switch(encFile)
|
||||
|
|
Loading…
Reference in a new issue