diff --git a/src/Edit.c b/src/Edit.c index b979bc2a8..21799bc8c 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -75,14 +75,14 @@ static int yFindReplaceDlgSave; extern int xFindReplaceDlg; extern int yFindReplaceDlg; -extern int iDefaultEOLMode; +extern int g_iDefaultEOLMode; extern int iLineEndings[3]; extern BOOL bFixLineEndings; extern BOOL bAutoStripBlanks; // Default Codepage and Character Set -extern int iDefaultEncoding; -extern int iDefaultCharSet; +extern int g_iDefaultEncoding; +extern int g_iDefaultCharSet; extern BOOL bLoadASCIIasUTF8; extern BOOL bLoadNFOasOEM; @@ -193,8 +193,8 @@ HWND EditCreate(HWND hwndParent) g_hInstance, NULL); - Encoding_Current(iDefaultEncoding); - Encoding_SciSetCodePage(hwnd,iDefaultEncoding); + Encoding_Current(g_iDefaultEncoding); + Encoding_SciSetCodePage(hwnd,g_iDefaultEncoding); SendMessage(hwnd,SCI_SETEOLMODE,SC_EOL_CRLF,0); SendMessage(hwnd,SCI_SETPASTECONVERTENDINGS,TRUE,0); SendMessage(hwnd,SCI_SETMODEVENTMASK,/*SC_MODEVENTMASKALL*/SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT|SC_MOD_CONTAINER,0); @@ -939,7 +939,7 @@ BOOL EditCopyAppend(HWND hwnd, BOOL bAppend) // int EditDetectEOLMode(HWND hwnd,char* lpData,DWORD cbData) { - int iEOLMode = iLineEndings[iDefaultEOLMode]; + int iEOLMode = iLineEndings[g_iDefaultEOLMode]; char *cp = (char*)lpData; if (!cp) @@ -993,7 +993,7 @@ BOOL EditLoadFile( dwLastIOError = GetLastError(); if (hFile == INVALID_HANDLE_VALUE) { - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1009,7 +1009,7 @@ BOOL EditLoadFile( CloseHandle(hFile); if (pbUnkownExt) *pbUnkownExt = TRUE; - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1022,7 +1022,7 @@ BOOL EditLoadFile( CloseHandle(hFile); if (pbFileTooBig) *pbFileTooBig = TRUE; - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1036,7 +1036,7 @@ BOOL EditLoadFile( CloseHandle(hFile); if (pbFileTooBig) *pbFileTooBig = FALSE; - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1048,7 +1048,7 @@ BOOL EditLoadFile( if (!bReadSuccess) { GlobalFree(lpData); - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1060,50 +1060,47 @@ BOOL EditLoadFile( bPreferOEM = TRUE; } - int _iPrefEncoding = (bPreferOEM) ? g_DOSEncoding : iDefaultEncoding; + const int iFileEncoding = Encoding_SrcCmdLn(CPI_GET); + const int iPreferedEncoding = (bPreferOEM) ? g_DOSEncoding : + (Encoding_IsValid(Encoding_SrcWeak(CPI_GET)) ? Encoding_SrcWeak(CPI_GET) : g_iDefaultEncoding); - if (Encoding_IsValid(Encoding_SrcWeak(CPI_GET))) { - _iPrefEncoding = Encoding_SrcWeak(CPI_GET); - } BOOL bBOM = FALSE; BOOL bReverse = FALSE; - const int iSrcEnc = Encoding_Source(CPI_GET); - if (cbData == 0) { FileVars_Init(NULL,0,&fvCurFile); - *iEOLMode = iLineEndings[iDefaultEOLMode]; - if (iSrcEnc == CPI_NONE) { + *iEOLMode = iLineEndings[g_iDefaultEOLMode]; + if (iFileEncoding == CPI_NONE) { if (bLoadASCIIasUTF8 && !bPreferOEM) *iEncoding = CPI_UTF8; else - *iEncoding = _iPrefEncoding; + *iEncoding = iPreferedEncoding; } else - *iEncoding = iSrcEnc; + *iEncoding = iFileEncoding; Encoding_SciSetCodePage(hwnd,*iEncoding); EditSetNewText(hwnd,"",0); - SendMessage(hwnd,SCI_SETEOLMODE,iLineEndings[iDefaultEOLMode],0); + SendMessage(hwnd,SCI_SETEOLMODE,iLineEndings[g_iDefaultEOLMode],0); GlobalFree(lpData); } else if (!bSkipEncodingDetection && - (iSrcEnc == CPI_NONE || iSrcEnc == CPI_UNICODE || iSrcEnc == CPI_UNICODEBE) && - (iSrcEnc == CPI_UNICODE || iSrcEnc == CPI_UNICODEBE || IsUnicode(lpData,cbData,&bBOM,&bReverse)) && - (iSrcEnc == CPI_UNICODE || iSrcEnc == CPI_UNICODEBE || !IsUTF8Signature(lpData))) // check for UTF-8 signature + (iFileEncoding == CPI_NONE || iFileEncoding == CPI_UNICODE || iFileEncoding == CPI_UNICODEBE) && + (iFileEncoding == CPI_UNICODE || iFileEncoding == CPI_UNICODEBE || IsUnicode(lpData,cbData,&bBOM,&bReverse)) && + (iFileEncoding == CPI_UNICODE || iFileEncoding == CPI_UNICODEBE || !IsUTF8Signature(lpData))) // check for UTF-8 signature { char* lpDataUTF8; - if (iSrcEnc == CPI_UNICODE) { + if (iFileEncoding == CPI_UNICODE) { bBOM = (*((UNALIGNED PWCHAR)lpData) == 0xFEFF); bReverse = FALSE; } - else if (iSrcEnc == CPI_UNICODEBE) + else if (iFileEncoding == CPI_UNICODEBE) bBOM = (*((UNALIGNED PWCHAR)lpData) == 0xFFFE); - if (iSrcEnc == CPI_UNICODEBE || bReverse) { + if (iFileEncoding == CPI_UNICODEBE || bReverse) { _swab(lpData,lpData,cbData); if (bBOM) *iEncoding = CPI_UNICODEBEBOM; @@ -1142,7 +1139,7 @@ BOOL EditLoadFile( else { GlobalFree(lpDataUTF8); GlobalFree(lpData); - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1150,18 +1147,18 @@ BOOL EditLoadFile( else { FileVars_Init(lpData,cbData,&fvCurFile); - if (!bSkipEncodingDetection && (iSrcEnc == CPI_NONE || iSrcEnc == CPI_UTF8 || iSrcEnc == CPI_UTF8SIGN) && + if (!bSkipEncodingDetection && (iFileEncoding == CPI_NONE || iFileEncoding == CPI_UTF8 || iFileEncoding == CPI_UTF8SIGN) && ((IsUTF8Signature(lpData) || FileVars_IsUTF8(&fvCurFile) || - (iSrcEnc == CPI_UTF8 || iSrcEnc == CPI_UTF8SIGN) || + (iFileEncoding == CPI_UTF8 || iFileEncoding == CPI_UTF8SIGN) || (!bPreferOEM && bLoadASCIIasUTF8) || // from menu "Reload As UTF-8" (IsUTF8(lpData,cbData) && (((UTF8_mbslen_bytes(UTF8StringStart(lpData)) - 1 != UTF8_mbslen(UTF8StringStart(lpData),IsUTF8Signature(lpData) ? cbData-3 : cbData)) || (!bPreferOEM && ( - g_Encodings[_iPrefEncoding].uFlags & NCP_UTF8 || + g_Encodings[iPreferedEncoding].uFlags & NCP_UTF8 || bLoadASCIIasUTF8))))))) && !(FileVars_IsNonUTF8(&fvCurFile) && - (iSrcEnc != CPI_UTF8 && iSrcEnc != CPI_UTF8SIGN))) + (iFileEncoding != CPI_UTF8 && iFileEncoding != CPI_UTF8SIGN))) { Encoding_SciSetCodePage(hwnd,CPI_UTF8); EditSetNewText(hwnd,"",0); @@ -1179,25 +1176,29 @@ BOOL EditLoadFile( } else { - if (iSrcEnc != CPI_NONE) - *iEncoding = iSrcEnc; + if (iFileEncoding != CPI_NONE) + *iEncoding = iFileEncoding; else { *iEncoding = FileVars_GetEncoding(&fvCurFile); if (*iEncoding == CPI_NONE) { if (fvCurFile.mask & FV_ENCODING) *iEncoding = CPI_ANSI_DEFAULT; else { - if (Encoding_SrcWeak(CPI_GET) == CPI_NONE) - *iEncoding = _iPrefEncoding; - else if (g_Encodings[Encoding_SrcWeak(CPI_GET)].uFlags & NCP_INTERNAL) - *iEncoding = iDefaultEncoding; - else - *iEncoding = _iPrefEncoding; + int iEncWeak = Encoding_SrcWeak(CPI_GET); + switch (iEncWeak) { + case CPI_NONE: + *iEncoding = iPreferedEncoding; + break; + default: + *iEncoding = (g_Encodings[iEncWeak].uFlags & NCP_INTERNAL) ? g_iDefaultEncoding : + (Encoding_IsValid(iEncWeak) ? iEncWeak : iPreferedEncoding); + break; + } } } } - if (((g_Encodings[*iEncoding].uCodePage != CP_UTF7) && (g_Encodings[*iEncoding].uFlags & NCP_8BIT)) || + if (((g_Encodings[*iEncoding].uCodePage != CP_UTF7) && (g_Encodings[*iEncoding].uFlags & NCP_EXTERNAL_8BIT)) || ((g_Encodings[*iEncoding].uCodePage == CP_UTF7) && IsUTF7(lpData,cbData))) { UINT uCodePage = g_Encodings[*iEncoding].uCodePage; @@ -1221,7 +1222,7 @@ BOOL EditLoadFile( else { GlobalFree(lpDataWide); GlobalFree(lpData); - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } @@ -1229,13 +1230,13 @@ BOOL EditLoadFile( else { GlobalFree(lpDataWide); GlobalFree(lpData); - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return FALSE; } } else { - *iEncoding = Encoding_IsValid(iSrcEnc) ? iSrcEnc : iDefaultEncoding; + *iEncoding = Encoding_IsValid(iFileEncoding) ? iFileEncoding : g_iDefaultEncoding; Encoding_SciSetCodePage(hwnd,*iEncoding); EditSetNewText(hwnd,"",0); EditSetNewText(hwnd,lpData,cbData); @@ -1245,7 +1246,7 @@ BOOL EditLoadFile( } } - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); Encoding_SrcWeak(CPI_NONE); return TRUE; @@ -1389,7 +1390,7 @@ BOOL EditSaveFile( GlobalFree(lpData); } - else if (g_Encodings[iEncoding].uFlags & NCP_8BIT) { + else if (g_Encodings[iEncoding].uFlags & NCP_EXTERNAL_8BIT) { BOOL bCancelDataLoss = FALSE; UINT uCodePage = g_Encodings[iEncoding].uCodePage; @@ -1793,7 +1794,7 @@ void EditEscapeCChars(HWND hwnd) { return; } - EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }; + EDITFINDREPLACE efr = EFR_INIT_DATA; efr.hwnd = hwnd; StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\"); @@ -1825,7 +1826,7 @@ void EditUnescapeCChars(HWND hwnd) { return; } - EDITFINDREPLACE efr = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }; + EDITFINDREPLACE efr = EFR_INIT_DATA; efr.hwnd = hwnd; StringCchCopyA(efr.szFind,FNDRPL_BUFFER,"\\\\"); @@ -7069,7 +7070,7 @@ void EditSetBookmarkList(HWND hwnd, LPCWSTR pszBookMarks) //============================================================================= // -// FileVars_Init() +// SetFileVars() // extern BOOL bNoEncodingTags; extern int flagNoFileVariables; @@ -7134,6 +7135,11 @@ void __fastcall SetFileVars(char* lpData, char* tch, LPFILEVARS lpfv) } } +//============================================================================= +// +// FileVars_Init() +// + BOOL FileVars_Init(char *lpData, DWORD cbData, LPFILEVARS lpfv) { char tch[LARGE_BUFFER]; diff --git a/src/Edit.h b/src/Edit.h index 837148f39..654a5b40d 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -42,6 +42,8 @@ typedef struct _editfindreplace } EDITFINDREPLACE, *LPEDITFINDREPLACE, *LPCEDITFINDREPLACE; +#define EFR_INIT_DATA { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL } + #define IDMSG_SWITCHTOFIND 300 #define IDMSG_SWITCHTOREPLACE 301 diff --git a/src/Helpers.c b/src/Helpers.c index 9c766c7d6..e8d4271e9 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -2768,144 +2768,144 @@ WCHAR wchANSI[16] = { L'\0' }; WCHAR wchOEM[16] = { L'\0' }; NP2ENCODING g_Encodings[] = { - { NCP_ANSI | NCP_RECODE, CP_ACP, "ansi,system,ascii,", 61000, L"" }, - { NCP_OEM | NCP_RECODE, CP_OEMCP, "oem,oem,", 61001, L"" }, - { NCP_UNICODE | NCP_UNICODE_BOM, CP_UTF8, "", 61002, L"" }, - { NCP_UNICODE | NCP_UNICODE_REVERSE | NCP_UNICODE_BOM, CP_UTF8, "", 61003, L"" }, - { NCP_UNICODE | NCP_RECODE, CP_UTF8, "utf-16,utf16,unicode,", 61004, L"" }, - { NCP_UNICODE | NCP_UNICODE_REVERSE | NCP_RECODE, CP_UTF8, "utf-16be,utf16be,unicodebe,", 61005, L"" }, - { NCP_UTF8 | NCP_RECODE, CP_UTF8, "utf-8,utf8,", 61006, L"" }, - { NCP_UTF8 | NCP_UTF8_SIGN, CP_UTF8, "utf-8,utf8,", 61007, L"" }, - { NCP_8BIT | NCP_RECODE, CP_UTF7, "utf-7,utf7,", 61008, L"" }, - { NCP_8BIT | NCP_RECODE, 720, "DOS-720,dos720,", 61009, L"" }, - { NCP_8BIT | NCP_RECODE, 28596, "iso-8859-6,iso88596,arabic,csisolatinarabic,ecma114,isoir127,", 61010, L"" }, - { NCP_8BIT | NCP_RECODE, 10004, "x-mac-arabic,xmacarabic,", 61011, L"" }, - { NCP_8BIT | NCP_RECODE, 1256, "windows-1256,windows1256,cp1256", 61012, L"" }, - { NCP_8BIT | NCP_RECODE, 775, "ibm775,ibm775,cp500,", 61013, L"" }, - { NCP_8BIT | NCP_RECODE, 28594, "iso-8859-4,iso88594,csisolatin4,isoir110,l4,latin4,", 61014, L"" }, - { NCP_8BIT | NCP_RECODE, 1257, "windows-1257,windows1257,", 61015, L"" }, - { NCP_8BIT | NCP_RECODE, 852, "ibm852,ibm852,cp852,", 61016, L"" }, - { NCP_8BIT | NCP_RECODE, 28592, "iso-8859-2,iso88592,csisolatin2,isoir101,latin2,l2,", 61017, L"" }, - { NCP_8BIT | NCP_RECODE, 10029, "x-mac-ce,xmacce,", 61018, L"" }, - { NCP_8BIT | NCP_RECODE, 1250, "windows-1250,windows1250,xcp1250,", 61019, L"" }, - { NCP_8BIT | NCP_RECODE, 936, "gb2312,gb2312,chinese,cngb,csgb2312,csgb231280,gb231280,gbk,", 61020, L"" }, - { NCP_8BIT | NCP_RECODE, 10008, "x-mac-chinesesimp,xmacchinesesimp,", 61021, L"" }, - { NCP_8BIT | NCP_RECODE, 950, "big5,big5,cnbig5,csbig5,xxbig5,", 61022, L"" }, - { NCP_8BIT | NCP_RECODE, 10002, "x-mac-chinesetrad,xmacchinesetrad,", 61023, L"" }, - { NCP_8BIT | NCP_RECODE, 10082, "x-mac-croatian,xmaccroatian,", 61024, L"" }, - { NCP_8BIT | NCP_RECODE, 866, "cp866,cp866,ibm866,", 61025, L"" }, - { NCP_8BIT | NCP_RECODE, 28595, "iso-8859-5,iso88595,csisolatin5,csisolatincyrillic,cyrillic,isoir144,", 61026, L"" }, - { NCP_8BIT | NCP_RECODE, 20866, "koi8-r,koi8r,cskoi8r,koi,koi8,", 61027, L"" }, - { NCP_8BIT | NCP_RECODE, 21866, "koi8-u,koi8u,koi8ru,", 61028, L"" }, - { NCP_8BIT | NCP_RECODE, 10007, "x-mac-cyrillic,xmaccyrillic,", 61029, L"" }, - { NCP_8BIT | NCP_RECODE, 1251, "windows-1251,windows1251,xcp1251,", 61030, L"" }, - { NCP_8BIT | NCP_RECODE, 28603, "iso-8859-13,iso885913,", 61031, L"" }, - { NCP_8BIT | NCP_RECODE, 863, "ibm863,ibm863,", 61032, L"" }, - { NCP_8BIT | NCP_RECODE, 737, "ibm737,ibm737,", 61033, L"" }, - { NCP_8BIT | NCP_RECODE, 28597, "iso-8859-7,iso88597,csisolatingreek,ecma118,elot928,greek,greek8,isoir126,", 61034, L"" }, - { NCP_8BIT | NCP_RECODE, 10006, "x-mac-greek,xmacgreek,", 61035, L"" }, - { NCP_8BIT | NCP_RECODE, 1253, "windows-1253,windows1253,", 61036, L"" }, - { NCP_8BIT | NCP_RECODE, 869, "ibm869,ibm869,", 61037, L"" }, - { NCP_8BIT | NCP_RECODE, 862, "DOS-862,dos862,", 61038, L"" }, - { NCP_8BIT | NCP_RECODE, 38598, "iso-8859-8-i,iso88598i,logical,", 61039, L"" }, - { NCP_8BIT | NCP_RECODE, 28598, "iso-8859-8,iso88598,csisolatinhebrew,hebrew,isoir138,visual,", 61040, L"" }, - { NCP_8BIT | NCP_RECODE, 10005, "x-mac-hebrew,xmachebrew,", 61041, L"" }, - { NCP_8BIT | NCP_RECODE, 1255, "windows-1255,windows1255,", 61042, L"" }, - { NCP_8BIT | NCP_RECODE, 861, "ibm861,ibm861,", 61043, L"" }, - { NCP_8BIT | NCP_RECODE, 10079, "x-mac-icelandic,xmacicelandic,", 61044, L"" }, - { NCP_8BIT | NCP_RECODE, 10001, "x-mac-japanese,xmacjapanese,", 61045, L"" }, - { NCP_8BIT | NCP_RECODE, 932, "shift_jis,shiftjis,shiftjs,csshiftjis,cswindows31j,mskanji,xmscp932,xsjis,", 61046, L"" }, - { NCP_8BIT | NCP_RECODE, 10003, "x-mac-korean,xmackorean,", 61047, L"" }, - { NCP_8BIT | NCP_RECODE, 949, "windows-949,windows949,ksc56011987,csksc5601,euckr,isoir149,korean,ksc56011989", 61048, L"" }, - { NCP_8BIT | NCP_RECODE, 28593, "iso-8859-3,iso88593,latin3,isoir109,l3,", 61049, L"" }, - { NCP_8BIT | NCP_RECODE, 28605, "iso-8859-15,iso885915,latin9,l9,", 61050, L"" }, - { NCP_8BIT | NCP_RECODE, 865, "ibm865,ibm865,", 61051, L"" }, - { NCP_8BIT | NCP_RECODE, 437, "ibm437,ibm437,437,cp437,cspc8,codepage437,", 61052, L"" }, - { NCP_8BIT | NCP_RECODE, 858, "ibm858,ibm858,ibm00858,", 61053, L"" }, - { NCP_8BIT | NCP_RECODE, 860, "ibm860,ibm860,", 61054, L"" }, - { NCP_8BIT | NCP_RECODE, 10010, "x-mac-romanian,xmacromanian,", 61055, L"" }, - { NCP_8BIT | NCP_RECODE, 10021, "x-mac-thai,xmacthai,", 61056, L"" }, - { NCP_8BIT | NCP_RECODE, 874, "windows-874,windows874,dos874,iso885911,tis620,", 61057, L"" }, - { NCP_8BIT | NCP_RECODE, 857, "ibm857,ibm857,", 61058, L"" }, - { NCP_8BIT | NCP_RECODE, 28599, "iso-8859-9,iso88599,latin5,isoir148,l5,", 61059, L"" }, - { NCP_8BIT | NCP_RECODE, 10081, "x-mac-turkish,xmacturkish,", 61060, L"" }, - { NCP_8BIT | NCP_RECODE, 1254, "windows-1254,windows1254,", 61061, L"" }, - { NCP_8BIT | NCP_RECODE, 10017, "x-mac-ukrainian,xmacukrainian,", 61062, L"" }, - { NCP_8BIT | NCP_RECODE, 1258, "windows-1258,windows-258,", 61063, L"" }, - { NCP_8BIT | NCP_RECODE, 850, "ibm850,ibm850,", 61064, L"" }, - { NCP_8BIT | NCP_RECODE, 28591, "iso-8859-1,iso88591,cp819,latin1,ibm819,isoir100,latin1,l1,", 61065, L"" }, - { NCP_8BIT | NCP_RECODE, 10000, "macintosh,macintosh,", 61066, L"" }, - { NCP_8BIT | NCP_RECODE, 1252, "windows-1252,windows1252,cp367,cp819,ibm367,us,xansi,", 61067, L"" }, - { NCP_8BIT | NCP_RECODE, 37, "ebcdic-cp-us,ebcdiccpus,ebcdiccpca,ebcdiccpwt,ebcdiccpnl,ibm037,cp037,", 61068, L"" }, - { NCP_8BIT | NCP_RECODE, 500, "x-ebcdic-international,xebcdicinternational,", 61069, L"" }, - { NCP_8BIT | NCP_RECODE, 875, "x-EBCDIC-GreekModern,xebcdicgreekmodern,", 61070, L"" }, - { NCP_8BIT | NCP_RECODE, 1026, "CP1026,cp1026,csibm1026,ibm1026,", 61071, L"" }, - //{ NCP_8BIT|NCP_RECODE, 870, "CP870,cp870,ebcdiccproece,ebcdiccpyu,csibm870,ibm870,", 00000, L"" }, // IBM EBCDIC (Multilingual Latin-2) - //{ NCP_8BIT|NCP_RECODE, 1047, "IBM01047,ibm01047,", 00000, L"" }, // IBM EBCDIC (Open System Latin-1) - //{ NCP_8BIT|NCP_RECODE, 1140, "x-ebcdic-cp-us-euro,xebcdiccpuseuro,", 00000, L"" }, // IBM EBCDIC (US-Canada-Euro) - //{ NCP_8BIT|NCP_RECODE, 1141, "x-ebcdic-germany-euro,xebcdicgermanyeuro,", 00000, L"" }, // IBM EBCDIC (Germany-Euro) - //{ NCP_8BIT|NCP_RECODE, 1142, "x-ebcdic-denmarknorway-euro,xebcdicdenmarknorwayeuro,", 00000, L"" }, // IBM EBCDIC (Denmark-Norway-Euro) - //{ NCP_8BIT|NCP_RECODE, 1143, "x-ebcdic-finlandsweden-euro,xebcdicfinlandswedeneuro,", 00000, L"" }, // IBM EBCDIC (Finland-Sweden-Euro) - //{ NCP_8BIT|NCP_RECODE, 1144, "x-ebcdic-italy-euro,xebcdicitalyeuro,", 00000, L"" }, // IBM EBCDIC (Italy-Euro) - //{ NCP_8BIT|NCP_RECODE, 1145, "x-ebcdic-spain-euro,xebcdicspaineuro,", 00000, L"" }, // IBM EBCDIC (Spain-Latin America-Euro) - //{ NCP_8BIT|NCP_RECODE, 1146, "x-ebcdic-uk-euro,xebcdicukeuro,", 00000, L"" }, // IBM EBCDIC (UK-Euro) - //{ NCP_8BIT|NCP_RECODE, 1147, "x-ebcdic-france-euro,xebcdicfranceeuro,", 00000, L"" }, // IBM EBCDIC (France-Euro) - //{ NCP_8BIT|NCP_RECODE, 1148, "x-ebcdic-international-euro,xebcdicinternationaleuro,", 00000, L"" }, // IBM EBCDIC (International-Euro) - //{ NCP_8BIT|NCP_RECODE, 1149, "x-ebcdic-icelandic-euro,xebcdicicelandiceuro,", 00000, L"" }, // IBM EBCDIC (Icelandic-Euro) - //{ NCP_8BIT|NCP_RECODE, 1361, "johab,johab,", 00000, L"" }, // Korean (Johab) - //{ NCP_8BIT|NCP_RECODE, 20273, "x-EBCDIC-Germany,xebcdicgermany,", 00000, L"" }, // IBM EBCDIC (Germany) - //{ NCP_8BIT|NCP_RECODE, 20277, "x-EBCDIC-DenmarkNorway,xebcdicdenmarknorway,ebcdiccpdk,ebcdiccpno,", 00000, L"" }, // IBM EBCDIC (Denmark-Norway) - //{ NCP_8BIT|NCP_RECODE, 20278, "x-EBCDIC-FinlandSweden,xebcdicfinlandsweden,ebcdicpfi,ebcdiccpse,", 00000, L"" }, // IBM EBCDIC (Finland-Sweden) - //{ NCP_8BIT|NCP_RECODE, 20280, "x-EBCDIC-Italy,xebcdicitaly,", 00000, L"" }, // IBM EBCDIC (Italy) - //{ NCP_8BIT|NCP_RECODE, 20284, "x-EBCDIC-Spain,xebcdicspain,ebcdiccpes,", 00000, L"" }, // IBM EBCDIC (Spain-Latin America) - //{ NCP_8BIT|NCP_RECODE, 20285, "x-EBCDIC-UK,xebcdicuk,ebcdiccpgb,", 00000, L"" }, // IBM EBCDIC (UK) - //{ NCP_8BIT|NCP_RECODE, 20290, "x-EBCDIC-JapaneseKatakana,xebcdicjapanesekatakana,", 00000, L"" }, // IBM EBCDIC (Japanese Katakana) - //{ NCP_8BIT|NCP_RECODE, 20297, "x-EBCDIC-France,xebcdicfrance,ebcdiccpfr,", 00000, L"" }, // IBM EBCDIC (France) - //{ NCP_8BIT|NCP_RECODE, 20420, "x-EBCDIC-Arabic,xebcdicarabic,ebcdiccpar1,", 00000, L"" }, // IBM EBCDIC (Arabic) - //{ NCP_8BIT|NCP_RECODE, 20423, "x-EBCDIC-Greek,xebcdicgreek,ebcdiccpgr,", 00000, L"" }, // IBM EBCDIC (Greek) - //{ NCP_8BIT|NCP_RECODE, 20424, "x-EBCDIC-Hebrew,xebcdichebrew,ebcdiccphe,", 00000, L"" }, // IBM EBCDIC (Hebrew) - //{ NCP_8BIT|NCP_RECODE, 20833, "x-EBCDIC-KoreanExtended,xebcdickoreanextended,", 00000, L"" }, // IBM EBCDIC (Korean Extended) - //{ NCP_8BIT|NCP_RECODE, 20838, "x-EBCDIC-Thai,xebcdicthai,ibmthai,csibmthai,", 00000, L"" }, // IBM EBCDIC (Thai) - //{ NCP_8BIT|NCP_RECODE, 20871, "x-EBCDIC-Icelandic,xebcdicicelandic,ebcdiccpis,", 00000, L"" }, // IBM EBCDIC (Icelandic) - //{ NCP_8BIT|NCP_RECODE, 20880, "x-EBCDIC-CyrillicRussian,xebcdiccyrillicrussian,ebcdiccyrillic,", 00000, L"" }, // IBM EBCDIC (Cyrillic Russian) - //{ NCP_8BIT|NCP_RECODE, 20905, "x-EBCDIC-Turkish,xebcdicturkish,ebcdiccptr,", 00000, L"" }, // IBM EBCDIC (Turkish) - //{ NCP_8BIT|NCP_RECODE, 20924, "IBM00924,ibm00924,ebcdiclatin9euro,", 00000, L"" }, // IBM EBCDIC (Open System-Euro Latin-1) - //{ NCP_8BIT|NCP_RECODE, 21025, "x-EBCDIC-CyrillicSerbianBulgarian,xebcdiccyrillicserbianbulgarian,", 00000, L"" }, // IBM EBCDIC (Cyrillic Serbian-Bulgarian) - //{ NCP_8BIT|NCP_RECODE, 50930, "x-EBCDIC-JapaneseAndKana,xebcdicjapaneseandkana,", 00000, L"" }, // IBM EBCDIC (Japanese and Japanese Katakana) - //{ NCP_8BIT|NCP_RECODE, 50931, "x-EBCDIC-JapaneseAndUSCanada,xebcdicjapaneseanduscanada,", 00000, L"" }, // IBM EBCDIC (Japanese and US-Canada) - //{ NCP_8BIT|NCP_RECODE, 50933, "x-EBCDIC-KoreanAndKoreanExtended,xebcdickoreanandkoreanextended,", 00000, L"" }, // IBM EBCDIC (Korean and Korean Extended) - //{ NCP_8BIT|NCP_RECODE, 50935, "x-EBCDIC-SimplifiedChinese,xebcdicsimplifiedchinese,", 00000, L"" }, // IBM EBCDIC (Chinese Simplified) - //{ NCP_8BIT|NCP_RECODE, 50937, "x-EBCDIC-TraditionalChinese,xebcdictraditionalchinese,", 00000, L"" }, // IBM EBCDIC (Chinese Traditional) - //{ NCP_8BIT|NCP_RECODE, 50939, "x-EBCDIC-JapaneseAndJapaneseLatin,xebcdicjapaneseandjapaneselatin,", 00000, L"" }, // IBM EBCDIC (Japanese and Japanese-Latin) - //{ NCP_8BIT|NCP_RECODE, 20105, "x-IA5,xia5,", 00000, L"" }, // Western European (IA5) - //{ NCP_8BIT|NCP_RECODE, 20106, "x-IA5-German,xia5german,", 00000, L"" }, // German (IA5) - //{ NCP_8BIT|NCP_RECODE, 20107, "x-IA5-Swedish,xia5swedish,", 00000, L"" }, // Swedish (IA5) - //{ NCP_8BIT|NCP_RECODE, 20108, "x-IA5-Norwegian,xia5norwegian,", 00000, L"" }, // Norwegian (IA5) - //{ NCP_8BIT|NCP_RECODE, 20936, "x-cp20936,xcp20936,", 00000, L"" }, // Chinese Simplified (GB2312) - //{ NCP_8BIT|NCP_RECODE, 20932, "euc-jp,,", 00000, L"" }, // Japanese (JIS X 0208-1990 & 0212-1990) - //{ NCP_8BIT|NCP_RECODE, 50220, "iso-2022-jp,iso2022jp,", 00000, L"" }, // Japanese (JIS) - //{ NCP_8BIT|NCP_RECODE, 50221, "csISO2022JP,csiso2022jp,", 00000, L"" }, // Japanese (JIS-Allow 1 byte Kana) - //{ NCP_8BIT|NCP_RECODE, 50222, "_iso-2022-jp$SIO,iso2022jpSIO,", 00000, L"" }, // Japanese (JIS-Allow 1 byte Kana - SO/SI) - //{ NCP_8BIT|NCP_RECODE, 50225, "iso-2022-kr,iso2022kr,csiso2022kr,", 00000, L"" }, // Korean (ISO-2022-KR) - //{ NCP_8BIT|NCP_RECODE, 50227, "x-cp50227,xcp50227,", 00000, L"" }, // Chinese Simplified (ISO-2022) - //{ NCP_8BIT|NCP_RECODE, 50229, "iso-2022-cn,iso2022cn,", 00000, L"" }, // Chinese Traditional (ISO-2022) - //{ NCP_8BIT|NCP_RECODE, 20000, "x-Chinese-CNS,xchinesecns,", 00000, L"" }, // Chinese Traditional (CNS) - //{ NCP_8BIT|NCP_RECODE, 20002, "x-Chinese-Eten,xchineseeten,", 00000, L"" }, // Chinese Traditional (Eten) - //{ NCP_8BIT|NCP_RECODE, 51932, "euc-jp,eucjp,xeuc,xeucjp,", 00000, L"" }, // Japanese (EUC) - //{ NCP_8BIT|NCP_RECODE, 51936, "euc-cn,euccn,xeuccn,", 00000, L"" }, // Chinese Simplified (EUC) - //{ NCP_8BIT|NCP_RECODE, 51949, "euc-kr,euckr,cseuckr,", 00000, L"" }, // Korean (EUC) - //{ NCP_8BIT|NCP_RECODE, 52936, "hz-gb-2312,hzgb2312,hz,", 00000, L"" }, // Chinese Simplified (HZ-GB2312) - { NCP_8BIT | NCP_RECODE, 54936, "gb18030,gb18030,", 61072, L"" } // Chinese Simplified (GB18030) - //{ NCP_8BIT|NCP_RECODE, 57002, "x-iscii-de,xisciide,", 00000, L"" }, // ISCII Devanagari - //{ NCP_8BIT|NCP_RECODE, 57003, "x-iscii-be,xisciibe,", 00000, L"" }, // ISCII Bengali - //{ NCP_8BIT|NCP_RECODE, 57004, "x-iscii-ta,xisciita,", 00000, L"" }, // ISCII Tamil - //{ NCP_8BIT|NCP_RECODE, 57005, "x-iscii-te,xisciite,", 00000, L"" }, // ISCII Telugu - //{ NCP_8BIT|NCP_RECODE, 57006, "x-iscii-as,xisciias,", 00000, L"" }, // ISCII Assamese - //{ NCP_8BIT|NCP_RECODE, 57007, "x-iscii-or,xisciior,", 00000, L"" }, // ISCII Oriya - //{ NCP_8BIT|NCP_RECODE, 57008, "x-iscii-ka,xisciika,", 00000, L"" }, // ISCII Kannada - //{ NCP_8BIT|NCP_RECODE, 57009, "x-iscii-ma,xisciima,", 00000, L"" }, // ISCII Malayalam - //{ NCP_8BIT|NCP_RECODE, 57010, "x-iscii-gu,xisciigu,", 00000, L"" }, // ISCII Gujarathi - //{ NCP_8BIT|NCP_RECODE, 57011, "x-iscii-pa,xisciipa,", 00000, L"" }, // ISCII Panjabi + { NCP_ANSI | NCP_RECODE, CP_ACP, "ansi,system,ascii,", 61000, L"" }, + { NCP_OEM | NCP_RECODE, CP_OEMCP, "oem,oem,", 61001, L"" }, + { NCP_UNICODE | NCP_UNICODE_BOM, CP_UTF8, "", 61002, L"" }, + { NCP_UNICODE | NCP_UNICODE_REVERSE | NCP_UNICODE_BOM, CP_UTF8, "", 61003, L"" }, + { NCP_UNICODE | NCP_RECODE, CP_UTF8, "utf-16,utf16,unicode,", 61004, L"" }, + { NCP_UNICODE | NCP_UNICODE_REVERSE | NCP_RECODE, CP_UTF8, "utf-16be,utf16be,unicodebe,", 61005, L"" }, + { NCP_UTF8 | NCP_RECODE, CP_UTF8, "utf-8,utf8,", 61006, L"" }, + { NCP_UTF8 | NCP_UTF8_SIGN, CP_UTF8, "utf-8,utf8,", 61007, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, CP_UTF7, "utf-7,utf7,", 61008, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 720, "DOS-720,dos720,", 61009, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28596, "iso-8859-6,iso88596,arabic,csisolatinarabic,ecma114,isoir127,", 61010, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10004, "x-mac-arabic,xmacarabic,", 61011, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1256, "windows-1256,windows1256,cp1256", 61012, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 775, "ibm775,ibm775,cp500,", 61013, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28594, "iso-8859-4,iso88594,csisolatin4,isoir110,l4,latin4,", 61014, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1257, "windows-1257,windows1257,", 61015, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 852, "ibm852,ibm852,cp852,", 61016, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28592, "iso-8859-2,iso88592,csisolatin2,isoir101,latin2,l2,", 61017, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10029, "x-mac-ce,xmacce,", 61018, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1250, "windows-1250,windows1250,xcp1250,", 61019, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 936, "gb2312,gb2312,chinese,cngb,csgb2312,csgb231280,gb231280,gbk,", 61020, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10008, "x-mac-chinesesimp,xmacchinesesimp,", 61021, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 950, "big5,big5,cnbig5,csbig5,xxbig5,", 61022, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10002, "x-mac-chinesetrad,xmacchinesetrad,", 61023, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10082, "x-mac-croatian,xmaccroatian,", 61024, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 866, "cp866,cp866,ibm866,", 61025, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28595, "iso-8859-5,iso88595,csisolatin5,csisolatincyrillic,cyrillic,isoir144,", 61026, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 20866, "koi8-r,koi8r,cskoi8r,koi,koi8,", 61027, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 21866, "koi8-u,koi8u,koi8ru,", 61028, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10007, "x-mac-cyrillic,xmaccyrillic,", 61029, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1251, "windows-1251,windows1251,xcp1251,", 61030, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28603, "iso-8859-13,iso885913,", 61031, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 863, "ibm863,ibm863,", 61032, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 737, "ibm737,ibm737,", 61033, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28597, "iso-8859-7,iso88597,csisolatingreek,ecma118,elot928,greek,greek8,isoir126,", 61034, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10006, "x-mac-greek,xmacgreek,", 61035, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1253, "windows-1253,windows1253,", 61036, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 869, "ibm869,ibm869,", 61037, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 862, "DOS-862,dos862,", 61038, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 38598, "iso-8859-8-i,iso88598i,logical,", 61039, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28598, "iso-8859-8,iso88598,csisolatinhebrew,hebrew,isoir138,visual,", 61040, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10005, "x-mac-hebrew,xmachebrew,", 61041, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1255, "windows-1255,windows1255,", 61042, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 861, "ibm861,ibm861,", 61043, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10079, "x-mac-icelandic,xmacicelandic,", 61044, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10001, "x-mac-japanese,xmacjapanese,", 61045, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 932, "shift_jis,shiftjis,shiftjs,csshiftjis,cswindows31j,mskanji,xmscp932,xsjis,", 61046, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10003, "x-mac-korean,xmackorean,", 61047, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 949, "windows-949,windows949,ksc56011987,csksc5601,euckr,isoir149,korean,ksc56011989", 61048, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28593, "iso-8859-3,iso88593,latin3,isoir109,l3,", 61049, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28605, "iso-8859-15,iso885915,latin9,l9,", 61050, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 865, "ibm865,ibm865,", 61051, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 437, "ibm437,ibm437,437,cp437,cspc8,codepage437,", 61052, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 858, "ibm858,ibm858,ibm00858,", 61053, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 860, "ibm860,ibm860,", 61054, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10010, "x-mac-romanian,xmacromanian,", 61055, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10021, "x-mac-thai,xmacthai,", 61056, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 874, "windows-874,windows874,dos874,iso885911,tis620,", 61057, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 857, "ibm857,ibm857,", 61058, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28599, "iso-8859-9,iso88599,latin5,isoir148,l5,", 61059, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10081, "x-mac-turkish,xmacturkish,", 61060, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1254, "windows-1254,windows1254,", 61061, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10017, "x-mac-ukrainian,xmacukrainian,", 61062, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1258, "windows-1258,windows-258,", 61063, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 850, "ibm850,ibm850,", 61064, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 28591, "iso-8859-1,iso88591,cp819,latin1,ibm819,isoir100,latin1,l1,", 61065, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 10000, "macintosh,macintosh,", 61066, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1252, "windows-1252,windows1252,cp367,cp819,ibm367,us,xansi,", 61067, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 37, "ebcdic-cp-us,ebcdiccpus,ebcdiccpca,ebcdiccpwt,ebcdiccpnl,ibm037,cp037,", 61068, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 500, "x-ebcdic-international,xebcdicinternational,", 61069, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 875, "x-EBCDIC-GreekModern,xebcdicgreekmodern,", 61070, L"" }, + { NCP_EXTERNAL_8BIT | NCP_RECODE, 1026, "CP1026,cp1026,csibm1026,ibm1026,", 61071, L"" }, + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 870, "CP870,cp870,ebcdiccproece,ebcdiccpyu,csibm870,ibm870,", 00000, L"" }, // IBM EBCDIC (Multilingual Latin-2) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1047, "IBM01047,ibm01047,", 00000, L"" }, // IBM EBCDIC (Open System Latin-1) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1140, "x-ebcdic-cp-us-euro,xebcdiccpuseuro,", 00000, L"" }, // IBM EBCDIC (US-Canada-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1141, "x-ebcdic-germany-euro,xebcdicgermanyeuro,", 00000, L"" }, // IBM EBCDIC (Germany-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1142, "x-ebcdic-denmarknorway-euro,xebcdicdenmarknorwayeuro,", 00000, L"" }, // IBM EBCDIC (Denmark-Norway-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1143, "x-ebcdic-finlandsweden-euro,xebcdicfinlandswedeneuro,", 00000, L"" }, // IBM EBCDIC (Finland-Sweden-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1144, "x-ebcdic-italy-euro,xebcdicitalyeuro,", 00000, L"" }, // IBM EBCDIC (Italy-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1145, "x-ebcdic-spain-euro,xebcdicspaineuro,", 00000, L"" }, // IBM EBCDIC (Spain-Latin America-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1146, "x-ebcdic-uk-euro,xebcdicukeuro,", 00000, L"" }, // IBM EBCDIC (UK-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1147, "x-ebcdic-france-euro,xebcdicfranceeuro,", 00000, L"" }, // IBM EBCDIC (France-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1148, "x-ebcdic-international-euro,xebcdicinternationaleuro,", 00000, L"" }, // IBM EBCDIC (International-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1149, "x-ebcdic-icelandic-euro,xebcdicicelandiceuro,", 00000, L"" }, // IBM EBCDIC (Icelandic-Euro) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 1361, "johab,johab,", 00000, L"" }, // Korean (Johab) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20273, "x-EBCDIC-Germany,xebcdicgermany,", 00000, L"" }, // IBM EBCDIC (Germany) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20277, "x-EBCDIC-DenmarkNorway,xebcdicdenmarknorway,ebcdiccpdk,ebcdiccpno,", 00000, L"" }, // IBM EBCDIC (Denmark-Norway) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20278, "x-EBCDIC-FinlandSweden,xebcdicfinlandsweden,ebcdicpfi,ebcdiccpse,", 00000, L"" }, // IBM EBCDIC (Finland-Sweden) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20280, "x-EBCDIC-Italy,xebcdicitaly,", 00000, L"" }, // IBM EBCDIC (Italy) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20284, "x-EBCDIC-Spain,xebcdicspain,ebcdiccpes,", 00000, L"" }, // IBM EBCDIC (Spain-Latin America) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20285, "x-EBCDIC-UK,xebcdicuk,ebcdiccpgb,", 00000, L"" }, // IBM EBCDIC (UK) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20290, "x-EBCDIC-JapaneseKatakana,xebcdicjapanesekatakana,", 00000, L"" }, // IBM EBCDIC (Japanese Katakana) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20297, "x-EBCDIC-France,xebcdicfrance,ebcdiccpfr,", 00000, L"" }, // IBM EBCDIC (France) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20420, "x-EBCDIC-Arabic,xebcdicarabic,ebcdiccpar1,", 00000, L"" }, // IBM EBCDIC (Arabic) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20423, "x-EBCDIC-Greek,xebcdicgreek,ebcdiccpgr,", 00000, L"" }, // IBM EBCDIC (Greek) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20424, "x-EBCDIC-Hebrew,xebcdichebrew,ebcdiccphe,", 00000, L"" }, // IBM EBCDIC (Hebrew) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20833, "x-EBCDIC-KoreanExtended,xebcdickoreanextended,", 00000, L"" }, // IBM EBCDIC (Korean Extended) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20838, "x-EBCDIC-Thai,xebcdicthai,ibmthai,csibmthai,", 00000, L"" }, // IBM EBCDIC (Thai) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20871, "x-EBCDIC-Icelandic,xebcdicicelandic,ebcdiccpis,", 00000, L"" }, // IBM EBCDIC (Icelandic) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20880, "x-EBCDIC-CyrillicRussian,xebcdiccyrillicrussian,ebcdiccyrillic,", 00000, L"" }, // IBM EBCDIC (Cyrillic Russian) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20905, "x-EBCDIC-Turkish,xebcdicturkish,ebcdiccptr,", 00000, L"" }, // IBM EBCDIC (Turkish) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20924, "IBM00924,ibm00924,ebcdiclatin9euro,", 00000, L"" }, // IBM EBCDIC (Open System-Euro Latin-1) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 21025, "x-EBCDIC-CyrillicSerbianBulgarian,xebcdiccyrillicserbianbulgarian,", 00000, L"" }, // IBM EBCDIC (Cyrillic Serbian-Bulgarian) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50930, "x-EBCDIC-JapaneseAndKana,xebcdicjapaneseandkana,", 00000, L"" }, // IBM EBCDIC (Japanese and Japanese Katakana) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50931, "x-EBCDIC-JapaneseAndUSCanada,xebcdicjapaneseanduscanada,", 00000, L"" }, // IBM EBCDIC (Japanese and US-Canada) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50933, "x-EBCDIC-KoreanAndKoreanExtended,xebcdickoreanandkoreanextended,", 00000, L"" }, // IBM EBCDIC (Korean and Korean Extended) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50935, "x-EBCDIC-SimplifiedChinese,xebcdicsimplifiedchinese,", 00000, L"" }, // IBM EBCDIC (Chinese Simplified) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50937, "x-EBCDIC-TraditionalChinese,xebcdictraditionalchinese,", 00000, L"" }, // IBM EBCDIC (Chinese Traditional) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50939, "x-EBCDIC-JapaneseAndJapaneseLatin,xebcdicjapaneseandjapaneselatin,", 00000, L"" }, // IBM EBCDIC (Japanese and Japanese-Latin) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20105, "x-IA5,xia5,", 00000, L"" }, // Western European (IA5) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20106, "x-IA5-German,xia5german,", 00000, L"" }, // German (IA5) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20107, "x-IA5-Swedish,xia5swedish,", 00000, L"" }, // Swedish (IA5) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20108, "x-IA5-Norwegian,xia5norwegian,", 00000, L"" }, // Norwegian (IA5) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20936, "x-cp20936,xcp20936,", 00000, L"" }, // Chinese Simplified (GB2312) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20932, "euc-jp,,", 00000, L"" }, // Japanese (JIS X 0208-1990 & 0212-1990) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50220, "iso-2022-jp,iso2022jp,", 00000, L"" }, // Japanese (JIS) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50221, "csISO2022JP,csiso2022jp,", 00000, L"" }, // Japanese (JIS-Allow 1 byte Kana) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50222, "_iso-2022-jp$SIO,iso2022jpSIO,", 00000, L"" }, // Japanese (JIS-Allow 1 byte Kana - SO/SI) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50225, "iso-2022-kr,iso2022kr,csiso2022kr,", 00000, L"" }, // Korean (ISO-2022-KR) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50227, "x-cp50227,xcp50227,", 00000, L"" }, // Chinese Simplified (ISO-2022) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 50229, "iso-2022-cn,iso2022cn,", 00000, L"" }, // Chinese Traditional (ISO-2022) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20000, "x-Chinese-CNS,xchinesecns,", 00000, L"" }, // Chinese Traditional (CNS) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 20002, "x-Chinese-Eten,xchineseeten,", 00000, L"" }, // Chinese Traditional (Eten) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 51932, "euc-jp,eucjp,xeuc,xeucjp,", 00000, L"" }, // Japanese (EUC) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 51936, "euc-cn,euccn,xeuccn,", 00000, L"" }, // Chinese Simplified (EUC) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 51949, "euc-kr,euckr,cseuckr,", 00000, L"" }, // Korean (EUC) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 52936, "hz-gb-2312,hzgb2312,hz,", 00000, L"" }, // Chinese Simplified (HZ-GB2312) + { NCP_EXTERNAL_8BIT | NCP_RECODE, 54936, "gb18030,gb18030,", 61072, L"" } // Chinese Simplified (GB18030) + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57002, "x-iscii-de,xisciide,", 00000, L"" }, // ISCII Devanagari + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57003, "x-iscii-be,xisciibe,", 00000, L"" }, // ISCII Bengali + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57004, "x-iscii-ta,xisciita,", 00000, L"" }, // ISCII Tamil + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57005, "x-iscii-te,xisciite,", 00000, L"" }, // ISCII Telugu + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57006, "x-iscii-as,xisciias,", 00000, L"" }, // ISCII Assamese + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57007, "x-iscii-or,xisciior,", 00000, L"" }, // ISCII Oriya + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57008, "x-iscii-ka,xisciika,", 00000, L"" }, // ISCII Kannada + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57009, "x-iscii-ma,xisciima,", 00000, L"" }, // ISCII Malayalam + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57010, "x-iscii-gu,xisciigu,", 00000, L"" }, // ISCII Gujarathi + //{ NCP_EXTERNAL_8BIT|NCP_RECODE, 57011, "x-iscii-pa,xisciipa,", 00000, L"" }, // ISCII Panjabi }; int Encoding_CountOf() { @@ -2925,7 +2925,7 @@ int Encoding_Current(int iEncoding) { } -int Encoding_Source(int iSrcEncoding) { +int Encoding_SrcCmdLn(int iSrcEncoding) { static int SourceEncoding = CPI_NONE; if (iSrcEncoding >= 0) { @@ -2983,8 +2983,8 @@ void Encoding_InitDefaults() { for (int i = CPI_UTF7 + 1; i < COUNTOF(g_Encodings); ++i) { if (Encoding_IsValid(i) && (g_Encodings[i].uCodePage == g_Encodings[CPI_ANSI_DEFAULT].uCodePage)) { g_Encodings[i].uFlags |= NCP_ANSI; - if (g_Encodings[i].uFlags & NCP_8BIT) - g_Encodings[CPI_ANSI_DEFAULT].uFlags |= NCP_8BIT; + if (g_Encodings[i].uFlags & NCP_EXTERNAL_8BIT) + g_Encodings[CPI_ANSI_DEFAULT].uFlags |= NCP_EXTERNAL_8BIT; break; } } @@ -2995,8 +2995,8 @@ void Encoding_InitDefaults() { for (int i = CPI_UTF7 + 1; i < COUNTOF(g_Encodings); ++i) { if (Encoding_IsValid(i) && (g_Encodings[i].uCodePage == g_Encodings[CPI_OEM].uCodePage)) { g_Encodings[i].uFlags |= NCP_OEM; - if (g_Encodings[i].uFlags & NCP_8BIT) - g_Encodings[CPI_OEM].uFlags |= NCP_8BIT; + if (g_Encodings[i].uFlags & NCP_EXTERNAL_8BIT) + g_Encodings[CPI_OEM].uFlags |= NCP_EXTERNAL_8BIT; break; } } @@ -3282,8 +3282,6 @@ void Encoding_AddToComboboxEx(HWND hwnd,int idSel,BOOL bRecodeOnly) { int id = pEE[i].id; if (!bRecodeOnly || (g_Encodings[id].uFlags & NCP_RECODE)) { - CPINFO cpi; - cbei.iItem = SendMessage(hwnd,CB_GETCOUNT,0,0); WCHAR *pwsz = StrChr(pEE[i].wch,L';'); @@ -3301,12 +3299,7 @@ void Encoding_AddToComboboxEx(HWND hwnd,int idSel,BOOL bRecodeOnly) { else if (id == CPI_OEM) StringCchCatN(wchBuf,COUNTOF(wchBuf),wchOEM,COUNTOF(wchOEM)); - if ((g_Encodings[id].uFlags & NCP_INTERNAL) || - (IsValidCodePage(g_Encodings[id].uCodePage) && - GetCPInfo(g_Encodings[id].uCodePage,&cpi))) - cbei.iImage = 0; - else - cbei.iImage = 1; + cbei.iImage = (Encoding_IsValid(id) ? 0 : 1); cbei.lParam = (LPARAM)id; SendMessage(hwnd,CBEM_INSERTITEM,0,(LPARAM)&cbei); @@ -3341,6 +3334,8 @@ BOOL Encoding_GetFromComboboxEx(HWND hwnd,int *pidEncoding) { } + + BOOL Encoding_IsDefault(int iEncoding) { return (g_Encodings[iEncoding].uFlags & NCP_DEFAULT); } @@ -3354,6 +3349,8 @@ BOOL Encoding_IsOEM(int iEncoding) { } UINT Encoding_SciGetCodePage(HWND hwnd) { + UNUSED(hwnd); + return CP_UTF8; // remove internal support for Chinese, Japan, Korean DBCS use UTF-8 instead /* int cp = (UINT)SendMessage(hwnd,SCI_GETCODEPAGE,0,0); @@ -3362,12 +3359,12 @@ UINT Encoding_SciGetCodePage(HWND hwnd) { } return (cp == 0) ? CP_ACP : CP_UTF8; */ - UNUSED(hwnd); - return CP_UTF8; } int Encoding_SciMappedCodePage(int iEncoding) { + UNUSED(iEncoding); + return SC_CP_UTF8; // remove internal support for Chinese, Japan, Korean DBCS use UTF-8 instead /* if (Encoding_IsValid(iEncoding)) { @@ -3378,8 +3375,6 @@ int Encoding_SciMappedCodePage(int iEncoding) { } } */ - UNUSED(iEncoding); - return SC_CP_UTF8; } @@ -3403,7 +3398,7 @@ void Encoding_SciSetCodePage(HWND hwnd,int iEncoding) { charset = SC_CHARSET_CHINESEBIG5; break; default: - charset = iDefaultCharSet; + charset = g_iDefaultCharSet; break; } SendMessage(hwnd,SCI_STYLESETCHARACTERSET,(WPARAM)STYLE_DEFAULT,(LPARAM)charset); diff --git a/src/Helpers.h b/src/Helpers.h index f63789cb7..9ebcbcf0e 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -357,12 +357,12 @@ extern int g_DOSEncoding; #define NCP_UNICODE 8 #define NCP_UNICODE_REVERSE 16 #define NCP_UNICODE_BOM 32 -#define NCP_8BIT 64 -#define NCP_ANSI 128 -#define NCP_OEM 256 -#define NCP_MBCS 512 -#define NCP_INTERNAL (NCP_DEFAULT|NCP_UTF8|NCP_UTF8_SIGN|NCP_UNICODE|NCP_UNICODE_REVERSE|NCP_UNICODE_BOM|NCP_ANSI|NCP_OEM|NCP_MBCS) -#define NCP_RECODE 1024 +#define NCP_ANSI 64 +#define NCP_OEM 128 +#define NCP_MBCS 256 +#define NCP_INTERNAL (NCP_DEFAULT|NCP_UTF8|NCP_UTF8_SIGN|NCP_UNICODE|NCP_UNICODE_REVERSE|NCP_UNICODE_BOM|NCP_ANSI|NCP_OEM|NCP_MBCS) +#define NCP_EXTERNAL_8BIT 512 +#define NCP_RECODE 1024 #define CPI_GET -2 #define CPI_NONE -1 @@ -389,7 +389,7 @@ typedef struct _np2encoding { int Encoding_CountOf(); int Encoding_Current(int); // getter/setter -int Encoding_Source(int); // getter/setter +int Encoding_SrcCmdLn(int); // getter/setter int Encoding_SrcWeak(int); // getter/setter BOOL Encoding_HasChanged(int); // query/setter diff --git a/src/Notepad3.c b/src/Notepad3.c index 8c286e1d2..5abe671df 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -254,11 +254,11 @@ LPMRULIST mruReplace; DWORD dwLastIOError; -int iDefaultEncoding; -int iDefaultCharSet; +int g_iDefaultEncoding; +int g_iDefaultCharSet; -int iEOLMode; -int iDefaultEOLMode; +int g_iEOLMode; +int g_iDefaultEOLMode; int iInitialLine; int iInitialColumn; @@ -282,7 +282,8 @@ UINT msgTaskbarCreated = 0; HMODULE hModUxTheme = NULL; HMODULE hRichEdit = NULL; -EDITFINDREPLACE g_efrData = { "", "", "", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL }; + +EDITFINDREPLACE g_efrData = EFR_INIT_DATA; UINT cpLastFind = 0; BOOL bReplaceInitialized = FALSE; @@ -734,7 +735,7 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow) // Source Encoding if (lpEncodingArg) - Encoding_Source(Encoding_MatchW(lpEncodingArg)); + Encoding_SrcCmdLn(Encoding_MatchW(lpEncodingArg)); // Pathname parameter if (flagBufferFile || (lpFileArg /*&& !flagNewFromClipboard*/)) @@ -792,15 +793,15 @@ HWND InitInstance(HINSTANCE hInstance,LPSTR pszCmdLine,int nCmdShow) } } else { - if (Encoding_Source(CPI_GET) != CPI_NONE) { - Encoding_Current(Encoding_Source(CPI_GET)); - Encoding_HasChanged(Encoding_Source(CPI_GET)); + if (Encoding_SrcCmdLn(CPI_GET) != CPI_NONE) { + Encoding_Current(Encoding_SrcCmdLn(CPI_GET)); + Encoding_HasChanged(Encoding_SrcCmdLn(CPI_GET)); Encoding_SciSetCodePage(g_hwndEdit,Encoding_Current(CPI_GET)); } } // reset - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); flagQuietCreate = 0; fKeepTitleExcerpt = 0; @@ -1840,7 +1841,7 @@ LRESULT MsgCopyData(HWND hwnd, WPARAM wParam, LPARAM lParam) if (params->flagFileSpecified) { BOOL bOpened = FALSE; - Encoding_Source(params->iSrcEncoding); + Encoding_SrcCmdLn(params->iSrcEncoding); if (PathIsDirectory(¶ms->wchData)) { WCHAR tchFile[MAX_PATH] = { L'\0' }; @@ -1876,11 +1877,7 @@ LRESULT MsgCopyData(HWND hwnd, WPARAM wParam, LPARAM lParam) if (0 != params->flagSetEOLMode) { flagSetEOLMode = params->flagSetEOLMode; - SendMessage( - g_hwndMain, - WM_COMMAND, - MAKELONG(IDM_LINEENDINGS_CRLF + flagSetEOLMode - 1, 1), - 0); + SendMessage(g_hwndMain, WM_COMMAND, MAKELONG(IDM_LINEENDINGS_CRLF + flagSetEOLMode - 1, 1), 0); flagSetEOLMode = 0; } @@ -1899,7 +1896,7 @@ LRESULT MsgCopyData(HWND hwnd, WPARAM wParam, LPARAM lParam) } } // reset - Encoding_Source(CPI_NONE); + Encoding_SrcCmdLn(CPI_NONE); } if (params->flagJumpTo) { @@ -2127,9 +2124,9 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam) i = -1; CheckMenuRadioItem(hmenu,IDM_ENCODING_ANSI,IDM_ENCODING_UTF8SIGN,i,MF_BYCOMMAND); - if (iEOLMode == SC_EOL_CRLF) + if (g_iEOLMode == SC_EOL_CRLF) i = IDM_LINEENDINGS_CRLF; - else if (iEOLMode == SC_EOL_LF) + else if (g_iEOLMode == SC_EOL_LF) i = IDM_LINEENDINGS_LF; else i = IDM_LINEENDINGS_CR; @@ -2725,7 +2722,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) if (RecodeDlg(hwnd,&iNewEncoding)) { StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile); - Encoding_Source(iNewEncoding); + Encoding_SrcCmdLn(iNewEncoding); FileLoad(TRUE,FALSE,TRUE,FALSE,tchCurFile2); } } @@ -2734,7 +2731,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) case IDM_ENCODING_SETDEFAULT: - SelectDefEncodingDlg(hwnd,&iDefaultEncoding); + SelectDefEncodingDlg(hwnd,&g_iDefaultEncoding); break; @@ -2744,9 +2741,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) { BeginWaitCursor(NULL) int iNewEOLMode = iLineEndings[LOWORD(wParam)-IDM_LINEENDINGS_CRLF]; - iEOLMode = iNewEOLMode; - SendMessage(g_hwndEdit,SCI_SETEOLMODE,iEOLMode,0); - SendMessage(g_hwndEdit,SCI_CONVERTEOLS,iEOLMode,0); + g_iEOLMode = iNewEOLMode; + SendMessage(g_hwndEdit,SCI_SETEOLMODE,g_iEOLMode,0); + SendMessage(g_hwndEdit,SCI_CONVERTEOLS,g_iEOLMode,0); EditFixPositions(g_hwndEdit); EndWaitCursor() UpdateToolbar(); @@ -2756,7 +2753,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) case IDM_LINEENDINGS_SETDEFAULT: - SelectDefLineEndingDlg(hwnd,&iDefaultEOLMode); + SelectDefLineEndingDlg(hwnd,&g_iDefaultEOLMode); break; @@ -4469,7 +4466,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) { WCHAR tchCurFile2[MAX_PATH] = { L'\0' }; if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) { - Encoding_Source(Encoding_MapUnicode(iDefaultEncoding)); + Encoding_SrcCmdLn(Encoding_MapUnicode(g_iDefaultEncoding)); StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile); FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2); } @@ -4481,7 +4478,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) { WCHAR tchCurFile2[MAX_PATH] = { L'\0' }; if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) { - Encoding_Source(CPI_ANSI_DEFAULT); + Encoding_SrcCmdLn(CPI_ANSI_DEFAULT); StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile); FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2); } @@ -4493,7 +4490,7 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) { WCHAR tchCurFile2[MAX_PATH] = { L'\0' }; if (StringCchLenW(g_wchCurFile,COUNTOF(g_wchCurFile))) { - Encoding_Source(CPI_OEM); + Encoding_SrcCmdLn(CPI_OEM); StringCchCopy(tchCurFile2,COUNTOF(tchCurFile2),g_wchCurFile); FileLoad(FALSE,FALSE,TRUE,TRUE,tchCurFile2); } @@ -4566,8 +4563,9 @@ LRESULT MsgCommand(HWND hwnd, WPARAM wParam, LPARAM lParam) struct tm sst; UINT cp; - EDITFINDREPLACE efrTS = { "", "", "", "", SCFIND_REGEXP, 0, 0, 0, 0, 0, 0, 0, 0, NULL }; + EDITFINDREPLACE efrTS = EFR_INIT_DATA; efrTS.hwnd = g_hwndEdit; + efrTS.fuFlags = SCFIND_REGEXP; IniGetString(L"Settings2",L"TimeStamp",L"\\$Date:[^\\$]+\\$ | $Date: %Y/%m/%d %H:%M:%S $",wchFind,COUNTOF(wchFind)); @@ -5372,7 +5370,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) if (bAutoIndent && (scn->ch == '\x0D' || scn->ch == '\x0A')) { // in CRLF mode handle LF only... - if ((SC_EOL_CRLF == iEOLMode && scn->ch != '\x0A') || SC_EOL_CRLF != iEOLMode) + if ((SC_EOL_CRLF == g_iEOLMode && scn->ch != '\x0A') || SC_EOL_CRLF != g_iEOLMode) { DocPos iCurPos = SciCall_GetCurrentPos(); DocLn iCurLine = SciCall_LineFromPosition(iCurPos); @@ -5608,9 +5606,9 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam) return TRUE; case STATUS_EOLMODE: - if (iEOLMode == SC_EOL_CRLF) + if (g_iEOLMode == SC_EOL_CRLF) i = IDM_LINEENDINGS_CRLF; - else if (iEOLMode == SC_EOL_LF) + else if (g_iEOLMode == SC_EOL_LF) i = IDM_LINEENDINGS_LF; else i = IDM_LINEENDINGS_CR; @@ -5798,10 +5796,10 @@ void LoadSettings() bViewEOLs = IniSectionGetBool(pIniSection,L"ViewEOLs", FALSE); - iDefaultEncoding = IniSectionGetInt(pIniSection,L"DefaultEncoding", CPI_NONE); + g_iDefaultEncoding = IniSectionGetInt(pIniSection,L"DefaultEncoding", CPI_NONE); // if DefaultEncoding is not defined set to system's current code-page - iDefaultEncoding = (iDefaultEncoding == CPI_NONE) ? - Encoding_MapIniSetting(TRUE,(int)GetACP()) : Encoding_MapIniSetting(TRUE,iDefaultEncoding); + g_iDefaultEncoding = (g_iDefaultEncoding == CPI_NONE) ? + Encoding_MapIniSetting(TRUE,(int)GetACP()) : Encoding_MapIniSetting(TRUE,g_iDefaultEncoding); bSkipUnicodeDetection = IniSectionGetBool(pIniSection, L"SkipUnicodeDetection", FALSE); @@ -5811,8 +5809,8 @@ void LoadSettings() bNoEncodingTags = IniSectionGetBool(pIniSection,L"NoEncodingTags", FALSE); - iDefaultEOLMode = IniSectionGetInt(pIniSection,L"DefaultEOLMode",0); - iDefaultEOLMode = max(min(iDefaultEOLMode,2),0); + g_iDefaultEOLMode = IniSectionGetInt(pIniSection,L"DefaultEOLMode",0); + g_iDefaultEOLMode = max(min(g_iDefaultEOLMode,2),0); bFixLineEndings = IniSectionGetBool(pIniSection,L"FixLineEndings",TRUE); @@ -6005,22 +6003,22 @@ void LoadSettings() // remove internal support for Chinese, Japan, Korean DBCS use UTF-8 instead /* - if (iDefaultEncoding == CPI_ANSI_DEFAULT) + if (g_iDefaultEncoding == CPI_ANSI_DEFAULT) { // check for Chinese, Japan, Korean DBCS code pages and switch accordingly int acp = (int)GetACP(); if (acp == 932 || acp == 936 || acp == 949 || acp == 950) { iSciDefaultCodePage = acp; } - iDefaultEncoding = Encoding_GetByCodePage(iSciDefaultCodePage); + g_iDefaultEncoding = Encoding_GetByCodePage(iSciDefaultCodePage); } */ // set flag for encoding default - g_Encodings[iDefaultEncoding].uFlags |= NCP_DEFAULT; + g_Encodings[g_iDefaultEncoding].uFlags |= NCP_DEFAULT; // define default charset - iDefaultCharSet = (int)CharSetFromCodePage((UINT)iSciDefaultCodePage); + g_iDefaultCharSet = (int)CharSetFromCodePage((UINT)iSciDefaultCodePage); // Scintilla Styles Style_Load(); @@ -6103,12 +6101,12 @@ void SaveSettings(BOOL bSaveSettingsNow) { IniSectionSetBool(pIniSection, L"MarkOccurrencesCurrentWord", bMarkOccurrencesCurrentWord); IniSectionSetBool(pIniSection, L"ViewWhiteSpace", bViewWhiteSpace); IniSectionSetBool(pIniSection, L"ViewEOLs", bViewEOLs); - IniSectionSetInt(pIniSection, L"DefaultEncoding", Encoding_MapIniSetting(FALSE, iDefaultEncoding)); + IniSectionSetInt(pIniSection, L"DefaultEncoding", Encoding_MapIniSetting(FALSE, g_iDefaultEncoding)); IniSectionSetBool(pIniSection, L"SkipUnicodeDetection", bSkipUnicodeDetection); IniSectionSetInt(pIniSection, L"LoadASCIIasUTF8", bLoadASCIIasUTF8); IniSectionSetBool(pIniSection, L"LoadNFOasOEM", bLoadNFOasOEM); IniSectionSetBool(pIniSection, L"NoEncodingTags", bNoEncodingTags); - IniSectionSetInt(pIniSection, L"DefaultEOLMode", iDefaultEOLMode); + IniSectionSetInt(pIniSection, L"DefaultEOLMode", g_iDefaultEOLMode); IniSectionSetBool(pIniSection, L"FixLineEndings", bFixLineEndings); IniSectionSetBool(pIniSection, L"FixTrailingBlanks", bAutoStripBlanks); IniSectionSetInt(pIniSection, L"PrintHeader", iPrintHeader); @@ -7057,11 +7055,11 @@ void UpdateStatusbar() Encoding_SetLabel(iEncoding); StringCchPrintf(tchEncoding, COUNTOF(tchEncoding), L" %s ", g_Encodings[iEncoding].wchLabel); - if (iEOLMode == SC_EOL_CR) + if (g_iEOLMode == SC_EOL_CR) { StringCchCopy(tchEOLMode, COUNTOF(tchEOLMode), L" CR "); } - else if (iEOLMode == SC_EOL_LF) + else if (g_iEOLMode == SC_EOL_LF) { StringCchCopy(tchEOLMode, COUNTOF(tchEOLMode), L" LF "); } @@ -7435,11 +7433,11 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp EditSetNewText(g_hwndEdit,"",0); Style_SetLexer(g_hwndEdit,NULL); - iEOLMode = iLineEndings[iDefaultEOLMode]; - SendMessage(g_hwndEdit,SCI_SETEOLMODE,iLineEndings[iDefaultEOLMode],0); - Encoding_Current(iDefaultEncoding); - Encoding_HasChanged(iDefaultEncoding); - Encoding_SciSetCodePage(g_hwndEdit,iDefaultEncoding); + g_iEOLMode = iLineEndings[g_iDefaultEOLMode]; + SendMessage(g_hwndEdit,SCI_SETEOLMODE,iLineEndings[g_iDefaultEOLMode],0); + Encoding_Current(g_iDefaultEncoding); + Encoding_HasChanged(g_iDefaultEncoding); + Encoding_SciSetCodePage(g_hwndEdit,g_iDefaultEncoding); EditSetNewText(g_hwndEdit,"",0); bReadOnly = FALSE; @@ -7505,16 +7503,16 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp FileVars_Init(NULL,0,&fvCurFile); EditSetNewText(g_hwndEdit,"",0); Style_SetLexer(g_hwndEdit,NULL); - iEOLMode = iLineEndings[iDefaultEOLMode]; - SendMessage(g_hwndEdit,SCI_SETEOLMODE,iLineEndings[iDefaultEOLMode],0); - if (Encoding_Source(CPI_GET) != CPI_NONE) { - fileEncoding = Encoding_Source(CPI_GET); + g_iEOLMode = iLineEndings[g_iDefaultEOLMode]; + SendMessage(g_hwndEdit,SCI_SETEOLMODE,iLineEndings[g_iDefaultEOLMode],0); + if (Encoding_SrcCmdLn(CPI_GET) != CPI_NONE) { + fileEncoding = Encoding_SrcCmdLn(CPI_GET); Encoding_Current(fileEncoding); Encoding_HasChanged(fileEncoding); } else { - Encoding_Current(iDefaultEncoding); - Encoding_HasChanged(iDefaultEncoding); + Encoding_Current(g_iDefaultEncoding); + Encoding_HasChanged(g_iDefaultEncoding); } Encoding_SciSetCodePage(g_hwndEdit,Encoding_Current(CPI_GET)); bReadOnly = FALSE; @@ -7532,12 +7530,12 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp if (!bReload && MRU_FindFile(pFileMRU,szFileName,&idx)) { fileEncoding = pFileMRU->iEncoding[idx]; if (fileEncoding > 0) - Encoding_Source(Encoding_MapUnicode(fileEncoding)); + Encoding_SrcCmdLn(Encoding_MapUnicode(fileEncoding)); } else fileEncoding = Encoding_Current(CPI_GET); - fSuccess = FileIO(TRUE,szFileName,bNoEncDetect,&fileEncoding,&iEOLMode,&bUnicodeErr,&bFileTooBig,&bUnknownExt,NULL,FALSE); + fSuccess = FileIO(TRUE,szFileName,bNoEncDetect,&fileEncoding,&g_iEOLMode,&bUnicodeErr,&bFileTooBig,&bUnknownExt,NULL,FALSE); if (fSuccess) Encoding_Current(fileEncoding); // load may change encoding } @@ -7552,7 +7550,7 @@ BOOL FileLoad(BOOL bDontSave,BOOL bNew,BOOL bReload,BOOL bNoEncDetect,LPCWSTR lp if (!flagLexerSpecified) // flag will be cleared Style_SetLexerFromFile(g_hwndEdit,g_wchCurFile); - SendMessage(g_hwndEdit,SCI_SETEOLMODE,iEOLMode,0); + SendMessage(g_hwndEdit,SCI_SETEOLMODE,g_iEOLMode,0); fileEncoding = Encoding_Current(CPI_GET); Encoding_HasChanged(fileEncoding); int idx, iCaretPos = 0; @@ -7642,6 +7640,7 @@ BOOL FileRevert(LPCWSTR szFileName) //BOOL bIsTail = (iCurPos == iAnchorPos) && (iCurPos == SendMessage(g_hwndEdit, SCI_GETLENGTH, 0, 0)); BOOL bIsTail = (iCurPos == iAnchorPos) && (iCurrLine >= (SciCall_GetLineCount() - 1)); + Encoding_SrcWeak(Encoding_Current(CPI_GET)); WCHAR tchFileName2[MAX_PATH] = { L'\0' }; @@ -7759,7 +7758,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, &iEOLMode, NULL, NULL, NULL, &bCancelDataLoss, bSaveCopy); + fSuccess = FileIO(FALSE, tchFile, FALSE, &fileEncoding, &g_iEOLMode, NULL, NULL, NULL, &bCancelDataLoss, bSaveCopy); //~if (fSuccess) Encoding_Current(fileEncoding); // save should not change encoding if (fSuccess) { @@ -7786,7 +7785,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,&iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,FALSE); + fSuccess = FileIO(FALSE,g_wchCurFile,FALSE,&fileEncoding,&g_iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,FALSE); //~if (fSuccess) Encoding_Current(fileEncoding); // save should not change encoding } @@ -7825,7 +7824,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,&iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,TRUE)) { + if (FileIO(FALSE,szTempFileName,FALSE,&fileEncoding,&g_iEOLMode,NULL,NULL,NULL,&bCancelDataLoss,TRUE)) { //~Encoding_Current(fileEncoding); // save should not change encoding WCHAR szArguments[2048] = { L'\0' }; LPWSTR lpCmdLine = GetCommandLine(); diff --git a/src/Styles.c b/src/Styles.c index a680d5e49..facf6f978 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -2987,7 +2987,7 @@ static int g_cxStyleSelectDlg; static int g_cyStyleSelectDlg; -extern int iDefaultCharSet; +extern int g_iDefaultCharSet; extern BOOL bHiliteCurrentLine; extern BOOL bHyperlinkHotspot; @@ -5112,9 +5112,9 @@ BOOL Style_SelectFont(HWND hwnd,LPWSTR lpszStyle,int cchStyle, LPCWSTR sLexerNam } } - int iCharSet = iDefaultCharSet; + int iCharSet = g_iDefaultCharSet; if (!Style_StrGetCharSet(lpszStyle, &iCharSet)) { - iCharSet = iDefaultCharSet; + iCharSet = g_iDefaultCharSet; } // is "size:" definition relative ? @@ -5261,7 +5261,7 @@ BOOL Style_SelectFont(HWND hwnd,LPWSTR lpszStyle,int cchStyle, LPCWSTR sLexerNam if (bGlobalDefaultStyle && (lf.lfCharSet != DEFAULT_CHARSET) && (lf.lfCharSet != ANSI_CHARSET) && - (lf.lfCharSet != iDefaultCharSet)) { + (lf.lfCharSet != g_iDefaultCharSet)) { if (lf.lfCharSet == iCharSet) { if (StrStrI(lpszStyle, L"charset:")) {