mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ chg: On FileRevert : if original encoding has been changed, revert file while ignoring cmd-line encoding define or file history stored encoding
This commit is contained in:
parent
7e97943fb8
commit
6c4d844e2f
13
src/Edit.c
13
src/Edit.c
@ -1026,12 +1026,8 @@ bool EditLoadFile(
|
||||
|
||||
size_t const cbNbytes4Analysis = (cbData < 200000L) ? cbData : 200000L;
|
||||
|
||||
int const iFileEncWeak = Encoding_SrcWeak(CPI_GET);
|
||||
|
||||
int iForcedEncoding = bForceLoadASCIIasUTF8 ? CPI_UTF8 : Encoding_SrcCmdLn(CPI_GET);
|
||||
|
||||
int iPreferedEncoding = (bPreferOEM) ? g_DOSEncoding :
|
||||
((bUseDefaultForFileEncoding || (cbNbytes4Analysis < 1)) ? g_iDefaultNewFileEncoding : CPI_ANSI_DEFAULT);
|
||||
((bUseDefaultForFileEncoding || (cbNbytes4Analysis == 0)) ? g_iDefaultNewFileEncoding : CPI_ANSI_DEFAULT);
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
bool bIsReliable = false;
|
||||
@ -1042,12 +1038,15 @@ bool EditLoadFile(
|
||||
}
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
int iForcedEncoding = bForceLoadASCIIasUTF8 ? CPI_UTF8 : Encoding_SrcCmdLn(CPI_GET);
|
||||
|
||||
if (g_bForceCompEncDetection && !Encoding_IsNONE(iAnalyzedEncoding)) {
|
||||
iForcedEncoding = iAnalyzedEncoding;
|
||||
}
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
// choose best encoding guess
|
||||
int const iFileEncWeak = Encoding_SrcWeak(CPI_GET);
|
||||
if (!Encoding_IsNONE(iForcedEncoding))
|
||||
iPreferedEncoding = iForcedEncoding;
|
||||
else if (Encoding_IsUNICODE(iAnalyzedEncoding) && !bSkipUTFDetection)
|
||||
@ -1056,8 +1055,8 @@ bool EditLoadFile(
|
||||
iPreferedEncoding = iFileEncWeak;
|
||||
else if (!Encoding_IsNONE(iAnalyzedEncoding) && bIsReliable)
|
||||
iPreferedEncoding = iAnalyzedEncoding;
|
||||
//else
|
||||
//iPreferedEncoding = iPreferedEncoding;
|
||||
else if (Encoding_IsNONE(iPreferedEncoding))
|
||||
iPreferedEncoding = CPI_ANSI_DEFAULT;
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -2599,7 +2599,7 @@ LRESULT MsgChangeNotify(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
if ((g_iFileWatchingMode == 2 && !IsDocumentModified && !Encoding_HasChanged(CPI_GET)) ||
|
||||
MsgBoxLng(MBYESNOWARN,IDS_MUI_FILECHANGENOTIFY) == IDYES)
|
||||
{
|
||||
FileRevert(g_wchCurFile);
|
||||
FileRevert(g_wchCurFile, Encoding_HasChanged(CPI_GET));
|
||||
|
||||
if (g_bChasingDocTail)
|
||||
{
|
||||
@ -3070,7 +3070,7 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
|
||||
if ((IsDocumentModified || Encoding_HasChanged(CPI_GET)) && MsgBoxLng(MBYESNO,IDS_MUI_ASK_REVERT) != IDYES) {
|
||||
break;
|
||||
}
|
||||
FileRevert(g_wchCurFile);
|
||||
FileRevert(g_wchCurFile, Encoding_HasChanged(CPI_GET));
|
||||
break;
|
||||
|
||||
|
||||
@ -9219,7 +9219,7 @@ bool FileLoad(bool bDontSave, bool bNew, bool bReload, bool bSkipUnicodeDetect,
|
||||
// FileRevert()
|
||||
//
|
||||
//
|
||||
bool FileRevert(LPCWSTR szFileName)
|
||||
bool FileRevert(LPCWSTR szFileName, bool bIgnoreCmdLnEnc)
|
||||
{
|
||||
if (StringCchLen(szFileName, MAX_PATH) != 0) {
|
||||
|
||||
@ -9235,6 +9235,9 @@ bool FileRevert(LPCWSTR szFileName)
|
||||
const int iXOffset = SciCall_GetXoffset();
|
||||
const bool bIsTail = (iCurPos == iAnchorPos) && (iCurrLine >= (SciCall_GetLineCount() - 1));
|
||||
|
||||
if (bIgnoreCmdLnEnc) {
|
||||
Encoding_SrcCmdLn(CPI_NONE); // ignore history too
|
||||
}
|
||||
Encoding_SrcWeak(Encoding_Current(CPI_GET));
|
||||
|
||||
WCHAR tchFileName2[MAX_PATH] = { L'\0' };
|
||||
|
||||
@ -162,7 +162,7 @@ void GetFindPatternMB(LPSTR, size_t);
|
||||
|
||||
bool FileIO(bool,LPCWSTR,bool,bool,int*,int*,bool*,bool*,bool*,bool*,bool);
|
||||
bool FileLoad(bool,bool,bool,bool,bool,LPCWSTR);
|
||||
bool FileRevert(LPCWSTR);
|
||||
bool FileRevert(LPCWSTR,bool);
|
||||
bool FileSave(bool,bool,bool,bool);
|
||||
bool OpenFileDlg(HWND,LPWSTR,int,LPCWSTR);
|
||||
bool SaveFileDlg(HWND,LPWSTR,int,LPCWSTR);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user