mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
Merge branch 'Development_0312' into Dev_0313
This commit is contained in:
commit
79268dca9b
@ -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;
|
||||
|
||||
16
src/Edit.c
16
src/Edit.c
@ -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) ||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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(¶ms->wchData)) {
|
||||
WCHAR tchFile[MAX_PATH] = { L'\0' };
|
||||
if (OpenFileDlg(g_hwndMain, tchFile, COUNTOF(tchFile), ¶ms->wchData))
|
||||
bOpened = FileLoad(FALSE, FALSE, FALSE, FALSE, tchFile);
|
||||
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, tchFile);
|
||||
}
|
||||
|
||||
else
|
||||
bOpened = FileLoad(FALSE, FALSE, FALSE, FALSE, ¶ms->wchData);
|
||||
bOpened = FileLoad(FALSE, FALSE, FALSE, bSkipUnicodeDetection, bSkipANSICodePageDetection, ¶ms->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();
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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">
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user