From e25edbeb4a6379dadcf5372f72523de827102f4f Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Sun, 8 Oct 2017 17:40:27 +0200 Subject: [PATCH] +fix: reverting "reload as UTF-8 not work bugfix" from Notepad2-mod branch - fix does not work properly: identifying ANSI files as ASCII (and force reload ad UTF-8, if configured) - that is not correct --- src/Edit.c | 50 ++++++++++++++++++------------------------------ src/Notepad3.rc | Bin 181900 -> 181898 bytes 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index 6f891724a..5f1d9e1bd 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -283,6 +283,7 @@ HWND EditCreate(HWND hwndParent) g_hInstance, NULL); + Encoding_Current(iDefaultEncoding); Encoding_SciSetCodePage(hwnd,iDefaultEncoding); SendMessage(hwnd,SCI_SETEOLMODE,SC_EOL_CRLF,0); SendMessage(hwnd,SCI_SETPASTECONVERTENDINGS,TRUE,0); @@ -1568,32 +1569,16 @@ BOOL EditLoadFile( BOOL *pbUnicodeErr, BOOL *pbFileTooBig) { - - HANDLE hFile; - - DWORD dwFileSize; - DWORD dwFileSizeLimit; - DWORD dwBufSize; - BOOL bReadSuccess; - - char* lpData; - DWORD cbData; - - BOOL bReverse = FALSE; - - BOOL bPreferOEM = FALSE; - - *iEncoding = CPI_ANSI_DEFAULT; *pbUnicodeErr = FALSE; *pbFileTooBig = FALSE; - hFile = CreateFile(pszFile, - GENERIC_READ, - FILE_SHARE_READ|FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); + HANDLE hFile = CreateFile(pszFile, + GENERIC_READ, + FILE_SHARE_READ|FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); dwLastIOError = GetLastError(); if (hFile == INVALID_HANDLE_VALUE) { @@ -1603,11 +1588,11 @@ BOOL EditLoadFile( } // calculate buffer limit - dwFileSize = GetFileSize(hFile,NULL); - dwBufSize = dwFileSize + 16; + DWORD dwFileSize = GetFileSize(hFile,NULL); + DWORD dwBufSize = dwFileSize + 16; // Check if a warning message should be displayed for large files - dwFileSizeLimit = IniGetInt(L"Settings2",L"FileLoadWarningMB",1); + DWORD dwFileSizeLimit = IniGetInt(L"Settings2",L"FileLoadWarningMB",1); if (dwFileSizeLimit != 0 && dwFileSizeLimit * 1024 * 1024 < dwFileSize) { if (InfoBox(MBYESNO,L"MsgFileSizeWarning",IDS_WARNLOADBIGFILE) != IDYES) { CloseHandle(hFile); @@ -1618,7 +1603,7 @@ BOOL EditLoadFile( } } - lpData = GlobalAlloc(GPTR,dwBufSize); + char* lpData = GlobalAlloc(GPTR,dwBufSize); dwLastIOError = GetLastError(); if (!lpData) @@ -1630,7 +1615,8 @@ BOOL EditLoadFile( return FALSE; } - bReadSuccess = ReadAndDecryptFile(hwnd, hFile, (DWORD)GlobalSize(lpData) - 2, &lpData, &cbData); + DWORD cbData = 0L; + BOOL bReadSuccess = ReadAndDecryptFile(hwnd, hFile, (DWORD)GlobalSize(lpData) - 2, &lpData, &cbData); dwLastIOError = GetLastError(); CloseHandle(hFile); @@ -1641,6 +1627,7 @@ BOOL EditLoadFile( return FALSE; } + BOOL bPreferOEM = FALSE; if (bLoadNFOasOEM) { PCWSTR pszExt = pszFile + StringCchLenN(pszFile,MAX_PATH) - 4; @@ -1653,6 +1640,8 @@ BOOL EditLoadFile( _iPrefEncoding = Encoding_SrcWeak(CPI_GET); BOOL bBOM = FALSE; + BOOL bReverse = FALSE; + const int iSrcEnc = Encoding_Source(CPI_GET); if (cbData == 0) { @@ -1737,13 +1726,12 @@ BOOL EditLoadFile( ((IsUTF8Signature(lpData) || FileVars_IsUTF8(&fvCurFile) || (iSrcEnc == CPI_UTF8 || iSrcEnc == CPI_UTF8SIGN) || - (!bPreferOEM && bLoadASCIIasUTF8) || (IsUTF8(lpData,cbData) && (((UTF8_mbslen_bytes(UTF8StringStart(lpData)) - 1 != UTF8_mbslen(UTF8StringStart(lpData),IsUTF8Signature(lpData) ? cbData-3 : cbData)) || (!bPreferOEM && ( - mEncoding[_iPrefEncoding].uFlags & NCP_UTF8 - )) ))))) && !(FileVars_IsNonUTF8(&fvCurFile) && + mEncoding[_iPrefEncoding].uFlags & NCP_UTF8 || + bLoadASCIIasUTF8))))))) && !(FileVars_IsNonUTF8(&fvCurFile) && (iSrcEnc != CPI_UTF8 && iSrcEnc != CPI_UTF8SIGN))) { Encoding_SciSetCodePage(hwnd,CPI_UTF8); diff --git a/src/Notepad3.rc b/src/Notepad3.rc index d2b8f91ee412881dc9e62385c78e56e3e1b596ce..3f05d7fc63e629cd57d0e24cd241083b10edb34f 100644 GIT binary patch delta 82 zcmeC_F95ee6ypE@ delta 62 zcmV-E0Kxx?jSGy83$QpJlguBElQ>B*m&9EH U5SOBO0uq-pX97mI3V8y6O~M2fPXGV_