diff --git a/far/changelog b/far/changelog index 6689619a64..b965b55a62 100644 --- a/far/changelog +++ b/far/changelog @@ -1,3 +1,7 @@ +drkns 25.10.2017 19:02:49 +0100 - build 5073 + +1. Уточнение 5071 - OEM CP по умолчанию. + zg 25.10.2017 13:41:20 +0300 - build 5072 1. 0003524: FCTL_SETUSERSCREEN и диалоги. diff --git a/far/language.cpp b/far/language.cpp index 6fa5aad56d..6d41cd863b 100644 --- a/far/language.cpp +++ b/far/language.cpp @@ -62,17 +62,24 @@ std::tuple OpenLangFile(const string& Path,cons { const auto CurrentFileName = PathWithSlash + FindData.strFileName; - std::get<0>(CurrentFileData) = os::fs::file(CurrentFileName, FILE_READ_DATA, FILE_SHARE_READ, nullptr, OPEN_EXISTING); - if (std::get<0>(CurrentFileData)) + auto& CurrentFile = std::get<0>(CurrentFileData); + auto& CurrentLngName = std::get<1>(CurrentFileData); + auto& CurrentCodepage = std::get<2>(CurrentFileData); + + CurrentFile = os::fs::file(CurrentFileName, FILE_READ_DATA, FILE_SHARE_READ, nullptr, OPEN_EXISTING); + if (CurrentFile) { - GetFileFormat(std::get<0>(CurrentFileData), std::get<2>(CurrentFileData), nullptr, false); + // Default + CurrentCodepage = CP_OEMCP; + + GetFileFormat(CurrentFile, CurrentCodepage, nullptr, false); - if (GetLangParam(std::get<0>(CurrentFileData), L"Language", std::get<1>(CurrentFileData), nullptr, std::get<2>(CurrentFileData)) && equal_icase(std::get<1>(CurrentFileData), Language)) + if (GetLangParam(CurrentFile, L"Language", CurrentLngName, nullptr, CurrentCodepage) && equal_icase(CurrentLngName, Language)) { return CurrentFileData; } - if (equal_icase(std::get<1>(CurrentFileData), L"English"_sv)) + if (equal_icase(CurrentLngName, L"English"_sv)) { EnglishFileData = std::move(CurrentFileData); } diff --git a/far/vbuild.m4 b/far/vbuild.m4 index 8b9daeb42f..dfcb96d6bc 100644 --- a/far/vbuild.m4 +++ b/far/vbuild.m4 @@ -1 +1 @@ -m4_define(BUILD,5072)m4_dnl +m4_define(BUILD,5073)m4_dnl