https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f7f2ed201a2522ce255864...
commit f7f2ed201a2522ce255864f2f9f7ebdc0fda6000 Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Mon Feb 20 21:59:16 2023 +0900 Commit: GitHub noreply@github.com CommitDate: Mon Feb 20 21:59:16 2023 +0900
[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 --- base/applications/notepad/dialog.c | 25 ++++++++++++------------- base/applications/notepad/main.c | 1 + base/applications/notepad/main.h | 3 +-- base/applications/notepad/text.c | 22 +++++++++++----------- 4 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/base/applications/notepad/dialog.c b/base/applications/notepad/dialog.c index 0b76b4711fd..12424dd30a9 100644 --- a/base/applications/notepad/dialog.c +++ b/base/applications/notepad/dialog.c @@ -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; diff --git a/base/applications/notepad/main.c b/base/applications/notepad/main.c index 2768d87fa8d..f99fb40621a 100644 --- a/base/applications/notepad/main.c +++ b/base/applications/notepad/main.c @@ -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)); diff --git a/base/applications/notepad/main.h b/base/applications/notepad/main.h index e2140c2b52b..34d7e542670 100644 --- a/base/applications/notepad/main.h +++ b/base/applications/notepad/main.h @@ -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 { diff --git a/base/applications/notepad/text.c b/base/applications/notepad/text.c index 7f0511229a1..8b8de3c9c1a 100644 --- a/base/applications/notepad/text.c +++ b/base/applications/notepad/text.c @@ -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)