From 1210e5beab11065b3e6c0dc418ce53c5f79b076e Mon Sep 17 00:00:00 2001 From: Nikita Zimin Date: Fri, 10 May 2024 20:31:36 +0300 Subject: [PATCH] WIP --- .appveyor.yml | 12 ++++++++++++ BKImage.cpp | 6 +++++- BKImage.h | 2 +- BKImgFile.cpp | 4 +++- StringUtil.cpp | 18 ------------------ imgos/BKFloppyImage_Prototype.cpp | 2 +- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index ff0cfdd..e8fc0d0 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -24,3 +24,15 @@ environment: build: project: bkdecmd.sln + +test_script: + cmd: | + cd %APPVEYOR_BUILD_FOLDER% + if %PLATFORM% == "x86" ( + set RUNPATH=%CONFIGURATION% + ) else ( + set RUNPATH=x664\%CONFIGURATION% + ) + %RUNPATH%\bkdecmd.exe i images\ANDOS330.IMG + %RUNPATH%\bkdecmd.exe l images\ANDOS330.IMG + %RUNPATH%\bkdecmd.exe lr images\ANDOS330.IMG diff --git a/BKImage.cpp b/BKImage.cpp index 06f565d..013e5ca 100644 --- a/BKImage.cpp +++ b/BKImage.cpp @@ -629,7 +629,7 @@ BKDirDataItem* CBKImage::FindFileRecord(std::wstring strFileName) //} // Спускаемся на уровень вниз, в под-директорию или в логический диск -void CBKImage::StepIntoDir(BKDirDataItem *fr) +bool CBKImage::StepIntoDir(BKDirDataItem *fr) { //BKDirDataItem frc; //frc.clear(); @@ -641,6 +641,7 @@ void CBKImage::StepIntoDir(BKDirDataItem *fr) { //TODO: Обработка ошибки // AfxGetMainWnd()->SendMessage(WM_SEND_ERRORNUM, WPARAM(0), static_cast(m_pFloppyImage->GetErrorNumber())); + return false; } //// Записываем frc в стек для будущего возврата @@ -653,6 +654,8 @@ void CBKImage::StepIntoDir(BKDirDataItem *fr) // m_PaneInfo.nTopItem = 0; // m_PaneInfo.nCurItem = 0; // OutCurrFilePath(); + + return true; } // Выходим вверх из под-директории или из логического диска @@ -685,6 +688,7 @@ bool CBKImage::StepUptoDir(BKDirDataItem *fr) } else { + //TODO: Обработка ошибки //AfxGetMainWnd()->SendMessage(WM_SEND_ERRORNUM, WPARAM(0), static_cast(m_pFloppyImage->GetErrorNumber())); } diff --git a/BKImage.h b/BKImage.h index 0f4bd23..34ec0de 100644 --- a/BKImage.h +++ b/BKImage.h @@ -164,7 +164,7 @@ class CBKImage // Печать одной строки для вывода одного элемента каталога: файла/директории void PrintItem(BKDirDataItem& fr, const int level, std::wstring dirpath); - void StepIntoDir(BKDirDataItem* fr); + bool StepIntoDir(BKDirDataItem* fr); bool StepUptoDir(BKDirDataItem* fr); bool ExtractObject(BKDirDataItem* fr); diff --git a/BKImgFile.cpp b/BKImgFile.cpp index 77fd2be..d8fc19a 100644 --- a/BKImgFile.cpp +++ b/BKImgFile.cpp @@ -263,9 +263,11 @@ std::wstring CBKImgFile::CalcImageSHA1() ? bufferSizeInBlocks : (reminder + BLOCK_SIZE - 1) / BLOCK_SIZE; - //TODO: Показать что за ошибка if (!ReadLBA(vec.data(), lbano, blocksToRead)) + { + std::wcout << L"Проблема при чтении образа диска при подсчёте SHA1." << std::endl; return L""; + } hash.update(vec.data(), blocksToRead * BLOCK_SIZE); diff --git a/StringUtil.cpp b/StringUtil.cpp index 30a6f4b..674220f 100644 --- a/StringUtil.cpp +++ b/StringUtil.cpp @@ -101,20 +101,11 @@ std::wstring strUtil::strToUpper(const std::wstring &str) if (!str.empty()) { -#ifdef WIN32 - _locale_t loc = _create_locale(LC_ALL, "Russian"); - for (auto n : str) - { - res.push_back(toupper_l(n, loc)); - } - _free_locale(loc); -#else std::locale loc = std::locale("ru-ru"); for (auto n : str) { res.push_back(toupper(n, loc)); } -#endif } return res; @@ -126,20 +117,11 @@ std::wstring strUtil::strToLower(const std::wstring &str) if (!str.empty()) { -#ifdef WIN32 - locale_t loc = _create_locale(LC_ALL, "Russian"); - for (auto n : str) - { - res.push_back(tolower_l(n, loc)); - } - _free_locale(loc); -#else std::locale loc = std::locale("ru-ru"); for (auto n : str) { res.push_back(tolower(n, loc)); } -#endif } return res; diff --git a/imgos/BKFloppyImage_Prototype.cpp b/imgos/BKFloppyImage_Prototype.cpp index 795b16c..4df1d94 100644 --- a/imgos/BKFloppyImage_Prototype.cpp +++ b/imgos/BKFloppyImage_Prototype.cpp @@ -169,7 +169,7 @@ std::wstring CBKFloppyImage_Prototype::CalcFileSHA1(BKDirDataItem *fr) std::vector vec(EvenSizeByBlock(fr->nSize)); if (!ReadFile(fr, vec.data())) { - //TODO: Показать ошибку + std::wcout << L"Проблема чтения файла из образа диска при подсчёте SHA1." << std::endl; return L""; }