Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2018-05-09 16:46:22 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-05-09 16:52:29 +0300
commit0385b33f0b3e389ea2a82c4b6bb181c684f0511a (patch)
tree554f34dda10b0b249e31eea2ee95a1b9b7f72f2d /source
parent69f2305415a224c277fe4fa9c81f846ba60cbb17 (diff)
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 :((( ).
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/library.c4
-rw-r--r--source/blender/blenloader/intern/blend_validate.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 292f37b5ce9..ff4780f0605 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -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);
}
}
diff --git a/source/blender/blenloader/intern/blend_validate.c b/source/blender/blenloader/intern/blend_validate.c
index d155fcfaa0d..0963fdd78e0 100644
--- a/source/blender/blenloader/intern/blend_validate.c
+++ b/source/blender/blenloader/intern/blend_validate.c
@@ -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;
}