Mercurial > foo_out_sdl
view foosdk/sdk/foobar2000/SDK/componentversion.cpp @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
line wrap: on
line source
#include "foobar2000-sdk-pch.h" #ifdef _WIN32 #include "componentversion.h" #include "filesystem.h" #include "console.h" bool component_installation_validator::test_my_name(const char * fn) { const char * path = core_api::get_my_full_path(); path += pfc::scan_filename(path); bool retVal = ( strcmp(path, fn) == 0 ); PFC_ASSERT( retVal ); if (!retVal) uAddDebugEvent(pfc::format("Component rename detected: ", fn, " >> ", path)); return retVal; } bool component_installation_validator::have_other_file(const char * fn) { for(int retry = 0;;) { pfc::string_formatter path = core_api::get_my_full_path(); path.truncate(path.scan_filename()); path << fn; try { try { bool v = filesystem::g_exists(path, fb2k::noAbort); PFC_ASSERT( v ); return v; } catch(std::exception const & e) { FB2K_console_formatter() << "Component integrity check error: " << e << " (on: " << fn << ")"; throw; } } catch(exception_io_denied const &) { } catch(exception_io_sharing_violation const &) { } catch(exception_io_file_corrupted const &) { // happens return false; } catch(...) { uBugCheck(); } if (++retry == 10) uBugCheck(); Sleep(100); } } #endif // _WIN32
