Repository :
https://github.com/FarGroup/FarManager
On branch : master
Link :
https://github.com/FarGroup/FarManager/commit/50eda1e138952e17439a222d0b988b559c8e14d2
>---------------------------------------------------------------
commit 50eda1e138952e17439a222d0b988b559c8e14d2
Author: Alex Alabuzhev <
alab...@gmail.com>
Date: Tue Jun 16 22:10:46 2026 +0100
Normalize code pages from external sources
>---------------------------------------------------------------
50eda1e138952e17439a222d0b988b559c8e14d2
far/config.cpp | 2 +-
far/editor.cpp | 2 +-
far/fileedit.cpp | 2 +-
far/plugapi.cpp | 4 ++++
4 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/far/config.cpp b/far/config.cpp
index c0dd18570..ed21246e8 100644
--- a/far/config.cpp
+++ b/far/config.cpp
@@ -1912,7 +1912,7 @@ Options::Options():
for (const auto& i: enum_tokens(Value, L",;"sv))
{
if (unsigned Codepage; from_string(i, Codepage, {}, 10))
- NoAutoDetectCP.emplace(Codepage);
+ NoAutoDetectCP.emplace(encoding::codepage::normalise(Codepage));
else
LOGWARNING(L"Unsupported value in CodePages.NoAutoDetectCP: [{}]"sv, i);
}
diff --git a/far/editor.cpp b/far/editor.cpp
index eaf27f2cd..d33efef89 100644
--- a/far/editor.cpp
+++ b/far/editor.cpp
@@ -6065,7 +6065,7 @@ int Editor::EditorControl(int Command, intptr_t Param1, void *Param2)
case ESPT_CODEPAGE:
{
- const uintptr_t cp = espar->iParam;
+ const uintptr_t cp = encoding::codepage::normalise(espar->iParam);
// BUGBUG
if (const auto HostFileEditor = GetHostFileEditor())
{
diff --git a/far/fileedit.cpp b/far/fileedit.cpp
index 7eccc34fd..6cab0d592 100644
--- a/far/fileedit.cpp
+++ b/far/fileedit.cpp
@@ -2537,7 +2537,7 @@ intptr_t FileEditor::EditorControl(int Command, intptr_t Param1, void *Param2)
Eol = eol::parse(esf->FileEOL);
if (esf->CodePage != CP_DEFAULT)
- Codepage = esf->CodePage;
+ Codepage = encoding::codepage::normalise(esf->CodePage);
}
if (DoNotOverwrite(strName, PointToName(strName)))
diff --git a/far/plugapi.cpp b/far/plugapi.cpp
index 10bfb96ee..351a4575c 100644
--- a/far/plugapi.cpp
+++ b/far/plugapi.cpp
@@ -1681,6 +1681,8 @@ intptr_t WINAPI apiViewer(const wchar_t *FileName,const wchar_t *Title,
if (Global->WindowManager->ManagerIsDown())
return FALSE;
+ CodePage = encoding::codepage::normalise(CodePage);
+
const auto DisableHistory = (Flags & VF_DISABLEHISTORY) != 0;
// $ 15.05.2002 SKV - Запретим вызов немодального редактора viewer-а из модального.
@@ -1778,6 +1780,8 @@ intptr_t WINAPI apiEditor(const wchar_t* FileName, const wchar_t* Title, intptr_
if (Global->WindowManager->ManagerIsDown())
return EEC_OPEN_ERROR;
+ CodePage = encoding::codepage::normalise(CodePage);
+
/* $ 12.07.2000 IS
Проверка флагов редактора (раньше они игнорировались) и открытие
немодального редактора, если есть соответствующий флаг