Merge branch 'Development_0312' into Dev_0313

This commit is contained in:
Rainer Kottenhoff 2018-03-12 22:48:45 +01:00
commit 79268dca9b
9 changed files with 79 additions and 64 deletions

View File

@ -59,6 +59,7 @@ extern WCHAR g_wchAppUserModelID[];
extern DWORD dwLastIOError;
extern BOOL bUseDefaultForFileEncoding;
extern BOOL bSkipUnicodeDetection;
extern BOOL bSkipANSICodePageDetection;
extern BOOL bLoadASCIIasUTF8;
extern BOOL bLoadNFOasOEM;
extern BOOL bNoEncodingTags;
@ -2105,6 +2106,9 @@ INT_PTR CALLBACK SelectDefEncodingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPAR
if (bSkipUnicodeDetection)
CheckDlgButton(hwnd,IDC_NOUNICODEDETECTION,BST_CHECKED);
if (bSkipANSICodePageDetection)
CheckDlgButton(hwnd, IDC_NOANSICPDETECTION, BST_CHECKED);
if (bLoadASCIIasUTF8)
CheckDlgButton(hwnd,IDC_ASCIIASUTF8,BST_CHECKED);
@ -2131,6 +2135,7 @@ INT_PTR CALLBACK SelectDefEncodingDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPAR
else {
bUseDefaultForFileEncoding = (IsDlgButtonChecked(hwnd, IDC_USEASREADINGFALLBACK) == BST_CHECKED) ? 1 : 0;
bSkipUnicodeDetection = (IsDlgButtonChecked(hwnd,IDC_NOUNICODEDETECTION) == BST_CHECKED) ? 1 : 0;
bSkipANSICodePageDetection = (IsDlgButtonChecked(hwnd, IDC_NOANSICPDETECTION) == BST_CHECKED) ? 1 : 0;
bLoadASCIIasUTF8 = (IsDlgButtonChecked(hwnd,IDC_ASCIIASUTF8) == BST_CHECKED) ? 1 : 0;
bLoadNFOasOEM = (IsDlgButtonChecked(hwnd,IDC_NFOASOEM) == BST_CHECKED) ? 1 : 0;
bNoEncodingTags = (IsDlgButtonChecked(hwnd,IDC_ENCODINGFROMFILEVARS) == BST_CHECKED) ? 1 : 0;

View File

@ -70,7 +70,6 @@ extern UINT cpLastFind;
extern BOOL bReplaceInitialized;
extern BOOL bUseOldStyleBraceMatching;
extern BOOL bUseDefaultForFileEncoding;
extern BOOL bSkipUnicodeDetection;
extern BOOL bFindReplCopySelOrClip;
static EDITFINDREPLACE efrSave;
@ -784,12 +783,12 @@ void EditPaste2RectSel(HWND hwnd, char* pText)
//
// EditPasteClipboard()
//
BOOL EditPasteClipboard(HWND hwnd, BOOL bSwapClipBoard)
BOOL EditPasteClipboard(HWND hwnd, BOOL bSwapClipBoard, BOOL bSkipUnicodeCheck)
{
int lineCount = 0;
int lenLastLine = 0;
char* pClip = EditGetClipboardText(hwnd, !bSkipUnicodeDetection, &lineCount, &lenLastLine);
char* pClip = EditGetClipboardText(hwnd, !bSkipUnicodeCheck, &lineCount, &lenLastLine);
if (!pClip) {
return FALSE; // recoding canceled
}
@ -972,7 +971,8 @@ int EditDetectEOLMode(HWND hwnd,char* lpData,DWORD cbData)
BOOL EditLoadFile(
HWND hwnd,
LPCWSTR pszFile,
BOOL bSkipEncodingDetection,
BOOL bSkipUTFDetection,
BOOL bSkipANSICPDetection,
int* iEncoding,
int* iEOLMode,
BOOL *pbUnicodeErr,
@ -1065,7 +1065,7 @@ BOOL EditLoadFile(
const int iForcedEncoding = Encoding_SrcCmdLn(CPI_GET);
const int iFileEncWeak = Encoding_SrcWeak(CPI_GET);
const int iAnalyzedEncoding = !bSkipEncodingDetection ? Encoding_Analyze(lpData, cbData) : CPI_NONE;
const int iAnalyzedEncoding = bSkipANSICPDetection ? CPI_NONE : Encoding_Analyze(lpData, cbData);
// choose best encoding guess
int iPreferedEncoding = (bPreferOEM) ? g_DOSEncoding : (bUseDefaultForFileEncoding ? g_iDefaultNewFileEncoding : CPI_ANSI_DEFAULT);
@ -1074,6 +1074,8 @@ BOOL EditLoadFile(
iPreferedEncoding = iForcedEncoding;
else if (iFileEncWeak != CPI_NONE)
iPreferedEncoding = iFileEncWeak;
else if (Encoding_IsUNICODE(iAnalyzedEncoding) && !bSkipUTFDetection)
iPreferedEncoding = iAnalyzedEncoding;
else if (iAnalyzedEncoding != CPI_NONE)
iPreferedEncoding = iAnalyzedEncoding;
@ -1099,7 +1101,7 @@ BOOL EditLoadFile(
GlobalFree(lpData);
}
// === UNICODE ===
else if (!bSkipEncodingDetection && //TODO: use Encoding_IsUNICODE(iAnalyzedEncoding) here ???
else if (!bSkipUTFDetection && //TODO: use Encoding_IsUNICODE(iAnalyzedEncoding) here ???
(Encoding_IsUNICODE(iForcedEncoding) || (iForcedEncoding == CPI_NONE)) &&
(Encoding_IsUNICODE(iForcedEncoding) || IsUnicode(lpData,cbData,&bBOM,&bReverse)) &&
(Encoding_IsUNICODE(iForcedEncoding) || !IsUTF8Signature(lpData))) // check for UTF-8 signature
@ -1163,7 +1165,7 @@ BOOL EditLoadFile(
FileVars_Init(lpData,cbData,&fvCurFile);
// === UTF-8 ===
if (!bSkipEncodingDetection && (Encoding_IsNONE(iForcedEncoding) || Encoding_IsUTF8(iForcedEncoding)) &&
if (!bSkipUTFDetection && (Encoding_IsNONE(iForcedEncoding) || Encoding_IsUTF8(iForcedEncoding)) &&
((IsUTF8Signature(lpData) ||
FileVars_IsUTF8(&fvCurFile) ||
(Encoding_IsUTF8(iForcedEncoding) ||

View File

@ -68,10 +68,10 @@ char* EditGetClipboardText(HWND,BOOL,int*,int*);
BOOL EditSetClipboardText(HWND, const char*);
BOOL EditClearClipboard(HWND);
void EditPaste2RectSel(HWND,char*);
BOOL EditPasteClipboard(HWND,BOOL);
BOOL EditPasteClipboard(HWND,BOOL,BOOL);
BOOL EditCopyAppend(HWND,BOOL);
int EditDetectEOLMode(HWND,char*,DWORD);
BOOL EditLoadFile(HWND,LPCWSTR,BOOL,int*,int*,BOOL*,BOOL*,BOOL*);
BOOL EditLoadFile(HWND,LPCWSTR,BOOL,BOOL,int*,int*,BOOL*,BOOL*,BOOL*);
BOOL EditSaveFile(HWND,LPCWSTR,int,BOOL*,BOOL);
void EditInvertCase(HWND);

View File

@ -1365,8 +1365,6 @@ void Encoding_SciSetCodePage(HWND hwnd, int iEncoding) {
// ============================================================================
extern BOOL bSkipUnicodeDetection;
BOOL IsUnicode(const char* pBuffer, int cb, LPBOOL lpbBOM, LPBOOL lpbReverse) {
int i = 0xFFFF;
@ -1378,10 +1376,7 @@ BOOL IsUnicode(const char* pBuffer, int cb, LPBOOL lpbBOM, LPBOOL lpbReverse) {
if (!pBuffer || cb < 2)
return FALSE;
if (!bSkipUnicodeDetection)
bIsTextUnicode = IsTextUnicode(pBuffer, cb, &i);
else
bIsTextUnicode = FALSE;
bIsTextUnicode = IsTextUnicode(pBuffer, cb, &i);
bHasBOM = (*((UNALIGNED PWCHAR)pBuffer) == 0xFEFF);
bHasRBOM = (*((UNALIGNED PWCHAR)pBuffer) == 0xFFFE);

View File

@ -181,6 +181,7 @@ BOOL bViewWhiteSpace;
BOOL bViewEOLs;
BOOL bUseDefaultForFileEncoding;
BOOL bSkipUnicodeDetection;
BOOL bSkipANSICodePageDetection;
BOOL bLoadASCIIasUTF8;
BOOL bLoadNFOasOEM;
BOOL bNoEncodingTags;
@ -736,7 +737,7 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
SetWindowTransparentMode(g_hwndMain,TRUE);
// Current file information -- moved in front of ShowWindow()
FileLoad(TRUE,TRUE,FALSE,FALSE,L"");
FileLoad(TRUE,TRUE,FALSE,bSkipUnicodeDetection,bSkipANSICodePageDetection,L"");
if (!flagStartAsTrayIcon) {
ShowWindow(g_hwndMain,nCmdShow);
@ -759,12 +760,12 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow)
// Open from Directory
if (!flagBufferFile && PathIsDirectory(lpFileArg)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(g_hwndMain,tchFile,COUNTOF(tchFile),lpFileArg))
bOpened = FileLoad(FALSE,FALSE,FALSE,FALSE,tchFile);
if (OpenFileDlg(g_hwndMain, tchFile, COUNTOF(tchFile), lpFileArg))
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
}
else {
LPCWSTR lpFileToOpen = flagBufferFile ? szBufferFile : lpFileArg;
bOpened = FileLoad(FALSE,FALSE,FALSE,FALSE,lpFileToOpen);
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, lpFileToOpen);
if (bOpened) {
if (flagBufferFile) {
if (lpFileArg) {
@ -1771,10 +1772,10 @@ void MsgDropFiles(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (PathIsDirectory(szBuf)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(g_hwndMain, tchFile, COUNTOF(tchFile), szBuf))
FileLoad(FALSE, FALSE, FALSE, FALSE, tchFile);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
}
else if (PathFileExists(szBuf))
FileLoad(FALSE, FALSE, FALSE, FALSE, szBuf);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, szBuf);
else
// Windows Bug: wParam (HDROP) pointer is corrupted if dropped from 32-bit App
MsgBox(MBWARN, IDS_DROP_NO_FILE);
@ -1814,10 +1815,10 @@ static DWORD DropFilesProc(CLIPFORMAT cf, HGLOBAL hData, HWND hWnd, DWORD dwKeyS
if (PathIsDirectory(szBuf)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(hWnd, tchFile, COUNTOF(tchFile), szBuf))
FileLoad(FALSE, FALSE, FALSE, FALSE, tchFile);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
}
else
FileLoad(FALSE, FALSE, FALSE, FALSE, szBuf);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, szBuf);
if (DragQueryFile(hDrop, (UINT)(-1), NULL, 0) > 1)
MsgBox(MBWARN, IDS_ERR_DROP);
@ -1864,11 +1865,11 @@ LRESULT MsgCopyData(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (PathIsDirectory(&params->wchData)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(g_hwndMain, tchFile, COUNTOF(tchFile), &params->wchData))
bOpened = FileLoad(FALSE, FALSE, FALSE, FALSE, tchFile);
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
}
else
bOpened = FileLoad(FALSE, FALSE, FALSE, FALSE, &params->wchData);
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, &params->wchData);
if (bOpened) {
@ -2439,12 +2440,12 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
break;
case IDM_FILE_NEW:
FileLoad(FALSE,TRUE,FALSE,FALSE,L"");
FileLoad(FALSE,TRUE,FALSE,bSkipUnicodeDetection,bSkipANSICodePageDetection,L"");
break;
case IDM_FILE_OPEN:
FileLoad(FALSE,FALSE,FALSE,FALSE,L"");
FileLoad(FALSE,FALSE,FALSE,bSkipUnicodeDetection,bSkipANSICodePageDetection,L"");
break;
@ -2634,10 +2635,10 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (OpenFileDlg(g_hwndMain,tchFile,COUNTOF(tchFile),tchSelItem))
FileLoad(TRUE,FALSE,FALSE,FALSE,tchFile);
FileLoad(TRUE,FALSE,FALSE,bSkipUnicodeDetection,bSkipANSICodePageDetection,tchFile);
}
else
FileLoad(TRUE,FALSE,FALSE,FALSE,tchSelItem);
FileLoad(TRUE,FALSE,FALSE,bSkipUnicodeDetection,bSkipANSICodePageDetection,tchSelItem);
}
}
break;
@ -2676,7 +2677,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (FileSave(FALSE,TRUE,FALSE,FALSE)) {
WCHAR tchFile[MAX_PATH] = { L'\0' };
if (FileMRUDlg(hwnd,tchFile))
FileLoad(TRUE,FALSE,FALSE,FALSE,tchFile);
FileLoad(TRUE,FALSE,FALSE,FALSE,TRUE,tchFile);
}
}
break;
@ -2745,7 +2746,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
Encoding_SrcCmdLn(iNewEncoding);
FileLoad(TRUE,FALSE,TRUE,FALSE,tchCurFile2);
FileLoad(TRUE,FALSE,TRUE,FALSE,TRUE,tchCurFile2);
}
}
}
@ -2846,7 +2847,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (flagPasteBoard)
bLastCopyFromMe = TRUE;
int token = BeginUndoAction();
EditPasteClipboard(g_hwndEdit, FALSE);
EditPasteClipboard(g_hwndEdit, FALSE, bSkipUnicodeDetection);
EndUndoAction(token);
UpdateToolbar();
UpdateStatusbar();
@ -2858,7 +2859,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (flagPasteBoard)
bLastCopyFromMe = TRUE;
int token = BeginUndoAction();
EditPasteClipboard(g_hwndEdit, TRUE);
EditPasteClipboard(g_hwndEdit, TRUE, bSkipUnicodeDetection);
EndUndoAction(token);
UpdateToolbar();
UpdateStatusbar();
@ -4494,7 +4495,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
Encoding_SrcCmdLn(Encoding_MapUnicode(g_iDefaultNewFileEncoding));
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2);
FileLoad(FALSE,FALSE,TRUE,TRUE,TRUE,tchCurFile2);
}
}
break;
@ -4506,7 +4507,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
Encoding_SrcCmdLn(CPI_ANSI_DEFAULT);
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2);
FileLoad(FALSE,FALSE,TRUE,TRUE,bSkipANSICodePageDetection,tchCurFile2);
}
}
break;
@ -4518,7 +4519,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
Encoding_SrcCmdLn(CPI_OEM);
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2);
FileLoad(FALSE,FALSE,TRUE,TRUE,TRUE,tchCurFile2);
}
}
break;
@ -4531,7 +4532,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) {
bLoadASCIIasUTF8 = 1;
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
FileLoad(FALSE,FALSE,TRUE,FALSE,tchCurFile2);
FileLoad(FALSE,FALSE,TRUE,FALSE,TRUE,tchCurFile2);
bLoadASCIIasUTF8 = _bLoadASCIIasUTF8;
}
}
@ -4547,7 +4548,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
flagNoFileVariables = 1;
bNoEncodingTags = 1;
StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile);
FileLoad(FALSE,FALSE,TRUE,FALSE,tchCurFile2);
FileLoad(FALSE,FALSE,TRUE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchCurFile2);
flagNoFileVariables = _fNoFileVariables;
bNoEncodingTags = _bNoEncodingTags;
}
@ -4919,7 +4920,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam)
case CMD_OPENINIFILE:
if (StringCchLenW(g_wchIniFile,COUNTOF(g_wchIniFile))) {
CreateIniFile();
FileLoad(FALSE,FALSE,FALSE,FALSE,g_wchIniFile);
FileLoad(FALSE,FALSE,FALSE,FALSE,TRUE,g_wchIniFile);
}
break;
@ -5211,10 +5212,10 @@ void OpenHotSpotURL(DocPos position, BOOL bForceBrowser)
WCHAR tchFile[MAX_PATH + 1] = { L'\0' };
if (OpenFileDlg(g_hwndMain, tchFile, COUNTOF(tchFile), szFileName))
FileLoad(FALSE, FALSE, FALSE, FALSE, tchFile);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
}
else
FileLoad(FALSE, FALSE, FALSE, FALSE, szFileName);
FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, szFileName);
}
else { // open in web browser
@ -5842,6 +5843,8 @@ void LoadSettings()
bSkipUnicodeDetection = IniSectionGetBool(pIniSection, L"SkipUnicodeDetection", FALSE);
bSkipANSICodePageDetection = IniSectionGetBool(pIniSection, L"SkipANSICodePageDetection", TRUE);
bLoadASCIIasUTF8 = IniSectionGetBool(pIniSection, L"LoadASCIIasUTF8", FALSE);
bLoadNFOasOEM = IniSectionGetBool(pIniSection,L"LoadNFOasOEM",TRUE);
@ -6145,6 +6148,7 @@ void SaveSettings(BOOL bSaveSettingsNow) {
IniSectionSetInt(pIniSection, L"DefaultEncoding", Encoding_MapIniSetting(FALSE, g_iDefaultNewFileEncoding));
IniSectionSetBool(pIniSection, L"UseDefaultForFileEncoding", bUseDefaultForFileEncoding);
IniSectionSetBool(pIniSection, L"SkipUnicodeDetection", bSkipUnicodeDetection);
IniSectionSetBool(pIniSection, L"SkipANSICodePageDetection", bSkipANSICodePageDetection);
IniSectionSetInt(pIniSection, L"LoadASCIIasUTF8", bLoadASCIIasUTF8);
IniSectionSetBool(pIniSection, L"LoadNFOasOEM", bLoadNFOasOEM);
IniSectionSetBool(pIniSection, L"NoEncodingTags", bNoEncodingTags);
@ -7406,7 +7410,8 @@ int UndoRedoActionMap(int token, UndoRedoSelection_t* selection)
// FileIO()
//
//
BOOL FileIO(BOOL fLoad,LPCWSTR pszFileName,BOOL bNoEncDetect,int *ienc,int *ieol,
BOOL FileIO(BOOL fLoad,LPCWSTR pszFileName,BOOL bSkipUnicodeDetect,BOOL bSkipANSICPDetection,
int *ienc,int *ieol,
BOOL *pbUnicodeErr,BOOL *pbFileTooBig, BOOL* pbUnknownExt,
BOOL *pbCancelDataLoss,BOOL bSaveCopy)
{
@ -7419,7 +7424,7 @@ BOOL FileIO(BOOL fLoad,LPCWSTR pszFileName,BOOL bNoEncDetect,int *ienc,int *ieol
BeginWaitCursor(tch);
if (fLoad) {
fSuccess = EditLoadFile(g_hwndEdit,pszFileName,bNoEncDetect,ienc,ieol,pbUnicodeErr,pbFileTooBig,pbUnknownExt);
fSuccess = EditLoadFile(g_hwndEdit,pszFileName,bSkipUnicodeDetect,bSkipANSICPDetection,ienc,ieol,pbUnicodeErr,pbFileTooBig,pbUnknownExt);
}
else {
int idx;
@ -7449,7 +7454,7 @@ BOOL FileIO(BOOL fLoad,LPCWSTR pszFileName,BOOL bNoEncDetect,int *ienc,int *ieol
// FileLoad()
//
//
BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lpszFile)
BOOL FileLoad(BOOL bDontSave, BOOL bNew, BOOL bReload, BOOL bSkipUnicodeDetect, BOOL bSkipANSICPDetection, LPCWSTR lpszFile)
{
WCHAR tch[MAX_PATH] = { L'\0' };
WCHAR szFileName[MAX_PATH] = { L'\0' };
@ -7579,7 +7584,7 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp
else
fileEncoding = Encoding_Current(CPI_GET);
fSuccess = FileIO(TRUE,szFileName,bNoEncDetect,&fileEncoding,&g_iEOLMode,&bUnicodeErr,&bFileTooBig,&bUnknownExt,NULL,FALSE);
fSuccess = FileIO(TRUE,szFileName,bSkipUnicodeDetect,bSkipANSICPDetection,&fileEncoding,&g_iEOLMode,&bUnicodeErr,&bFileTooBig,&bUnknownExt,NULL,FALSE);
if (fSuccess)
Encoding_Current(fileEncoding); // load may change encoding
}
@ -7690,7 +7695,7 @@ BOOL FileRevert(LPCWSTR szFileName)
WCHAR tchFileName2[MAX_PATH] = { L'\0' };
StringCchCopy(tchFileName2,COUNTOF(tchFileName2),szFileName);
if (FileLoad(TRUE,FALSE,TRUE,FALSE,tchFileName2))
if (FileLoad(TRUE,FALSE,TRUE,FALSE,TRUE,tchFileName2))
{
if (bIsTail && iFileWatchingMode == 2) {
SendMessage(g_hwndEdit, SCI_DOCUMENTEND, 0, 0);
@ -7802,7 +7807,7 @@ BOOL FileSave(BOOL bSaveAlways,BOOL bAsk,BOOL bSaveAs,BOOL bSaveCopy)
if (SaveFileDlg(g_hwndMain,tchFile,COUNTOF(tchFile),tchInitialDir))
{
int fileEncoding = Encoding_Current(CPI_GET);
fSuccess = FileIO(FALSE, tchFile, FALSE, &fileEncoding, &g_iEOLMode, NULL, NULL, NULL, &bCancelDataLoss, bSaveCopy);
fSuccess = FileIO(FALSE, tchFile, FALSE, TRUE, &fileEncoding, &g_iEOLMode, NULL, NULL, NULL, &bCancelDataLoss, bSaveCopy);
//~if (fSuccess) Encoding_Current(fileEncoding); // save should not change encoding
if (fSuccess)
{
@ -7829,7 +7834,7 @@ BOOL FileSave(BOOL bSaveAlways,BOOL bAsk,BOOL bSaveAs,BOOL bSaveCopy)
}
else {
int fileEncoding = Encoding_Current(CPI_GET);
fSuccess = FileIO(FALSE,g_wchCurFile,FALSE,&fileEncoding,&g_iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,FALSE);
fSuccess = FileIO(FALSE, g_wchCurFile, FALSE, TRUE, &fileEncoding, &g_iEOLMode, NULL, NULL, NULL, &bCancelDataLoss, FALSE);
//~if (fSuccess) Encoding_Current(fileEncoding); // save should not change encoding
}
@ -7868,7 +7873,7 @@ BOOL FileSave(BOOL bSaveAlways,BOOL bAsk,BOOL bSaveAs,BOOL bSaveCopy)
if (GetTempPath(MAX_PATH,lpTempPathBuffer) &&
GetTempFileName(lpTempPathBuffer,TEXT("NP3"),0,szTempFileName)) {
int fileEncoding = Encoding_Current(CPI_GET);
if (FileIO(FALSE,szTempFileName,FALSE,&fileEncoding,&g_iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,TRUE)) {
if (FileIO(FALSE,szTempFileName,FALSE,TRUE,&fileEncoding,&g_iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,TRUE)) {
//~Encoding_Current(fileEncoding); // save should not change encoding
WCHAR szArguments[2048] = { L'\0' };
LPWSTR lpCmdLine = GetCommandLine();

View File

@ -163,8 +163,8 @@ int UndoRedoActionMap(int,UndoRedoSelection_t*);
void OpenHotSpotURL(DocPos, BOOL);
BOOL FileIO(BOOL,LPCWSTR,BOOL,int*,int*,BOOL*,BOOL*,BOOL*,BOOL*,BOOL);
BOOL FileLoad(BOOL,BOOL,BOOL,BOOL,LPCWSTR);
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 FileSave(BOOL,BOOL,BOOL,BOOL);
BOOL OpenFileDlg(HWND,LPWSTR,int,LPCWSTR);

View File

@ -639,6 +639,7 @@ BEGIN
VK_F12, IDACC_VIEWSCHEMECONFIG, VIRTKEY, CONTROL, NOINVERT
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
@ -750,25 +751,27 @@ BEGIN
SCROLLBAR IDC_RESIZEGRIP3,7,112,10,10
END
IDD_DEFENCODING DIALOGEX 0, 0, 181, 122
IDD_DEFENCODING DIALOGEX 0, 0, 197, 159
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Encoding"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "&Default encoding (new file):",IDC_STATIC,7,7,90,8
CONTROL "",IDC_ENCODINGLIST,"ComboBoxEx32",CBS_DROPDOWNLIST | WS_CLIPSIBLINGS | WS_VSCROLL | WS_TABSTOP,7,20,167,128
GROUPBOX "Default Encoding (new file):",IDC_STATIC,7,7,183,48,0,WS_EX_TRANSPARENT
CONTROL "",IDC_ENCODINGLIST,"ComboBoxEx32",CBS_DROPDOWNLIST | WS_CLIPSIBLINGS | WS_VSCROLL | WS_TABSTOP,14,19,167,128
CONTROL "Use as &fallback on detection failure.",IDC_USEASREADINGFALLBACK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,40,155,10
CONTROL "Skip &encoding detection.",IDC_NOUNICODEDETECTION,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,51,122,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,38,155,10
GROUPBOX "Encoding Detection: ",IDC_STATIC,7,58,183,77,0,WS_EX_TRANSPARENT
CONTROL "Skip &ANSI Code Page detection.",IDC_NOANSICPDETECTION,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,122,10
CONTROL "Skip &UNICODE detection.",IDC_NOUNICODEDETECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,83,122,10
CONTROL "Open 7-bit &ASCII files in UTF-8 mode.",IDC_ASCIIASUTF8,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,62,136,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,96,136,10
CONTROL "Open 8-bit *.&nfo/diz files in DOS-437 mode.",IDC_NFOASOEM,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,73,155,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,109,155,10
CONTROL "Don't parse encoding file &tags.",IDC_ENCODINGFROMFILEVARS,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,84,126,10
DEFPUSHBUTTON "OK",IDOK,68,101,50,14
PUSHBUTTON "Cancel",IDCANCEL,124,101,50,14
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,121,126,10
DEFPUSHBUTTON "OK",IDOK,87,138,50,14
PUSHBUTTON "Cancel",IDCANCEL,140,138,50,14
END
IDD_DEFEOLMODE DIALOGEX 0, 0, 180, 78
@ -1217,9 +1220,9 @@ BEGIN
IDD_DEFENCODING, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 174
RIGHTMARGIN, 190
TOPMARGIN, 7
BOTTOMMARGIN, 115
BOTTOMMARGIN, 152
END
IDD_DEFEOLMODE, DIALOG

View File

@ -31,6 +31,7 @@
<PlatformToolset>v141</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<CharacterSet>Unicode</CharacterSet>
@ -38,6 +39,7 @@
<PlatformToolset>v141</PlatformToolset>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<CharacterSet>Unicode</CharacterSet>
@ -45,6 +47,7 @@
<PlatformToolset>v141</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<CharacterSet>Unicode</CharacterSet>
@ -52,6 +55,7 @@
<PlatformToolset>v141</PlatformToolset>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">

View File

@ -136,6 +136,7 @@
#define IDC_PRINTER 232
#define IDC_USEASREADINGFALLBACK 233
#define IDR_ACCCUSTOMSCHEMES 234
#define IDC_NOANSICPDETECTION 235
#define IDACC_FIND 302
#define IDACC_REPLACE 303
#define IDACC_SAVEPOS 304