Fix broken 'check/validate libs' code with indirect libs.
Readcode always set relative paths of indirectly linked libs relative to *current* .blend file, not to the library using it. But BKE_library_filepath_set was then setting them relative to their parent library, breaking checking code (and saved files even :((( ).
This commit is contained in:
@@ -2384,7 +2384,9 @@ void BKE_library_filepath_set(Library *lib, const char *filepath)
|
||||
* outliner, and its not really supported but allow from here for now
|
||||
* since making local could cause this to be directly linked - campbell
|
||||
*/
|
||||
const char *basepath = lib->parent ? lib->parent->filepath : G.main->name;
|
||||
/* Never make paths relative to parent lib - reading code (blenloader) always set *all* lib->name relative to
|
||||
* current G.main, not to their parent for indirectly linked ones. */
|
||||
const char *basepath = G.main->name;
|
||||
BLI_path_abs(lib->filepath, basepath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,6 +85,8 @@ bool BLO_main_validate_libraries(struct Main *bmain, struct ReportList *reports)
|
||||
BlendHandle *bh = BLO_blendhandle_from_file(curlib->filepath, reports);
|
||||
|
||||
if (bh == NULL) {
|
||||
BKE_reportf(reports, RPT_ERROR,
|
||||
"Library ID %s not found at expected path %s!\n", curlib->id.name, curlib->filepath);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user