X-Git-Url: https://git.jtryba.com/browse/friidump.git/blobdiff_plain/6e43cd3fd4f7324a177331a01d653b4c19c4bca7..759ff43c97423ceb8ce4be11002237ff507284c6:/src/redump_dat.h?ds=inline diff --git a/src/redump_dat.h b/src/redump_dat.h index 39919ed..b3b2c83 100644 --- a/src/redump_dat.h +++ b/src/redump_dat.h @@ -49,6 +49,30 @@ const char *redump_field_status_string(redump_field_status status); const char *redump_verify_overall_string(const redump_verify_result *result); const char *redump_verify_confidence_string(const redump_verify_result *result); const char *redump_verify_match_kind_string(const redump_verify_result *result); + +/* + * Resolve a DAT path predictably. + * + * Resolution order: + * 1. explicit_dir, when non-empty (authoritative); + * 2. FRIIDUMP_REDUMP_DAT_DIR, when set (authoritative); + * 3. executable_dir/redump_dat (portable and CMake build layout); + * 4. executable_dir/../share/friidump/redump_dat (installed Unix layout); + * 5. current-working-directory redump_dat. + * + * CMake copies the bundled DAT files beside the build executable and installs + * them under the platform-appropriate data directory. The selected candidate + * is always written to out_path when arguments are valid. The return value is + * nonzero only when that candidate exists. + */ +int redump_resolve_dat_path( + const char *explicit_dir, + const char *executable_dir, + const char *basename, + char *out_path, + size_t out_path_size +); + int redump_verify_dat_file( const char *dat_path, uint64_t image_size,