From 0e9f4264ca0ff7d77ae7f62666aa0b32318163fb Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Wed, 14 Aug 2019 01:55:54 +0200 Subject: [PATCH] + fix: broken enforce encoding (recode) --- src/Edit.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index a6d9eabb8..45de0edf4 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -1067,18 +1067,20 @@ bool EditLoadFile( Globals.CallTipType = CT_ENC_INFO; #endif } - } - else { - if (Flags.bDevDebugMode) { - WCHAR wchBuf[128] = { L'\0' }; - StringCchPrintf(wchBuf, COUNTOF(wchBuf), L"ForcedEncoding='%s'", g_Encodings[iForcedEncoding].wchLabel); - SetAdditionalTitleInfo(wchBuf); + if (bForceEncDetection && !Encoding_IsNONE(iAnalyzedEncoding)) { + iForcedEncoding = iAnalyzedEncoding; // no bIsReliable check (forced unreliable detection) } } + if (Flags.bDevDebugMode && IS_ENC_ENFORCED()) { + WCHAR wchBuf[128] = { L'\0' }; + StringCchPrintf(wchBuf, COUNTOF(wchBuf), L"ForcedEncoding='%s'", g_Encodings[iForcedEncoding].wchLabel); + SetAdditionalTitleInfo(wchBuf); + } + // ------------------------------------------------------ - if (!bForceEncDetection) + if (!IS_ENC_ENFORCED()) { bool const bIsUnicode = Encoding_IsUTF8(iAnalyzedEncoding) || Encoding_IsUNICODE(iAnalyzedEncoding); @@ -1103,12 +1105,6 @@ bool EditLoadFile( // -------------------------------------------------------------------------- - if (bForceEncDetection && !Encoding_IsNONE(iAnalyzedEncoding)) - { - iForcedEncoding = iAnalyzedEncoding; // no bIsReliable check (forced unreliable detection) - } - // -------------------------------------------------------------------------- - // --- 3rd Unicode Checks bool const bIsUnicodeForced = Encoding_IsUNICODE(iForcedEncoding); @@ -1145,7 +1141,7 @@ bool EditLoadFile( if (cbData == 0) { FileVars_Init(NULL, 0, &Globals.fvCurFile); status->iEOLMode = Settings.DefaultEOLMode; - status->iEncoding = IS_ENC_ENFORCED() ? iForcedEncoding : (Settings.LoadASCIIasUTF8 ? CPI_UTF8 : iPreferredEncoding); + status->iEncoding = Settings.LoadASCIIasUTF8 ? CPI_UTF8 : iPreferredEncoding; EditSetNewText(hwnd, "", 0, bClearUndoHistory); SciCall_SetEOLMode(Settings.DefaultEOLMode); FreeMem(lpData); @@ -1211,14 +1207,15 @@ bool EditLoadFile( cpi_enc_t const iFileVarEncoding = (FileVars_IsValidEncoding(&Globals.fvCurFile) && !Settings.NoEncodingTags) ? FileVars_GetEncoding(&Globals.fvCurFile) : CPI_NONE; - if (!Encoding_IsNONE(iFileVarEncoding) && !bForceEncDetection) { + if (!IS_ENC_ENFORCED() && !Encoding_IsNONE(iFileVarEncoding)) { iForcedEncoding = (Globals.fvCurFile.mask & FV_ENCODING) ? iFileVarEncoding : iForcedEncoding; + iPreferredEncoding = IS_ENC_ENFORCED() ? iForcedEncoding : iPreferredEncoding; } if (Flags.bDevDebugMode) { if (!Encoding_IsNONE(iFileVarEncoding) && FileVars_IsValidEncoding(&Globals.fvCurFile)) { WCHAR wchBuf[128] = { L'\0' }; - StringCchPrintf(wchBuf, COUNTOF(wchBuf), L" - FileVarEncoding='%s'", + StringCchPrintf(wchBuf, COUNTOF(wchBuf), L" - FilEncTag='%s'", g_Encodings[FileVars_GetEncoding(&Globals.fvCurFile)].wchLabel); AppendAdditionalTitleInfo(wchBuf); } @@ -1249,11 +1246,9 @@ bool EditLoadFile( else { // === ALL OTHER === // ---------------------------------------------------------------------- - status->iEncoding = IS_ENC_ENFORCED() ? iForcedEncoding : - (!Encoding_IsNONE(iPreferredEncoding) ? iPreferredEncoding : CPI_ANSI_DEFAULT); + status->iEncoding = Encoding_IsValid(iPreferredEncoding) ? iPreferredEncoding : CPI_ANSI_DEFAULT; // ---------------------------------------------------------------------- - if (((Encoding_GetCodePage(status->iEncoding) != CP_UTF7) && Encoding_IsEXTERNAL_8BIT(status->iEncoding)) || ((Encoding_GetCodePage(status->iEncoding) == CP_UTF7) && IsValidUTF7(lpData, cbData))) { @@ -1290,7 +1285,6 @@ bool EditLoadFile( } } else { - status->iEncoding = Encoding_IsValid(iForcedEncoding) ? iForcedEncoding : iPreferredEncoding; EditSetNewText(hwnd, lpData, cbData, bClearUndoHistory); EditDetectEOLMode(lpData, cbData, status); FreeMem(lpData);