Mercurial > foo_out_sdl
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #include "foobar2000-sdk-pch.h" | |
| 2 | |
| 3 #ifdef _WIN32 | |
| 4 #include "componentversion.h" | |
| 5 #include "filesystem.h" | |
| 6 #include "console.h" | |
| 7 | |
| 8 bool component_installation_validator::test_my_name(const char * fn) { | |
| 9 const char * path = core_api::get_my_full_path(); | |
| 10 path += pfc::scan_filename(path); | |
| 11 bool retVal = ( strcmp(path, fn) == 0 ); | |
| 12 PFC_ASSERT( retVal ); | |
| 13 if (!retVal) uAddDebugEvent(pfc::format("Component rename detected: ", fn, " >> ", path)); | |
| 14 return retVal; | |
| 15 } | |
| 16 bool component_installation_validator::have_other_file(const char * fn) { | |
| 17 for(int retry = 0;;) { | |
| 18 pfc::string_formatter path = core_api::get_my_full_path(); | |
| 19 path.truncate(path.scan_filename()); | |
| 20 path << fn; | |
| 21 try { | |
| 22 try { | |
| 23 bool v = filesystem::g_exists(path, fb2k::noAbort); | |
| 24 PFC_ASSERT( v ); | |
| 25 return v; | |
| 26 } catch(std::exception const & e) { | |
| 27 FB2K_console_formatter() << "Component integrity check error: " << e << " (on: " << fn << ")"; | |
| 28 throw; | |
| 29 } | |
| 30 } catch(exception_io_denied const &) { | |
| 31 | |
| 32 } catch(exception_io_sharing_violation const &) { | |
| 33 | |
| 34 } catch(exception_io_file_corrupted const &) { // happens | |
| 35 return false; | |
| 36 } catch(...) { | |
| 37 uBugCheck(); | |
| 38 } | |
| 39 if (++retry == 10) uBugCheck(); | |
| 40 | |
| 41 Sleep(100); | |
| 42 } | |
| 43 } | |
| 44 | |
| 45 #endif // _WIN32 | |
| 46 |
