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
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-10-27 05:25:07 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-10-27 05:25:07 +0400
commitcd852ce1a199da11f119394ea719f9699c76c995 (patch)
tree4c23079e83b758bce8ffb9a3c4bb030d3c5d3fbf /source/blender/blenkernel
parent4772b72951513d6554a79b94d401414265698daf (diff)
- remove bpath iterator and replace all uses with visitor.
- added flag to optionally receive all paths as absolute.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/blender.c19
-rw-r--r--source/blender/blenkernel/intern/image.c2
-rw-r--r--source/blender/blenkernel/intern/library.c2
3 files changed, 10 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 4cbdbeb890d..6e343e874f1 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -160,22 +160,19 @@ static void clear_global(void)
G.main= NULL;
}
+static int clean_paths_visit_cb(void *UNUSED(userdata), char *path_dst, const char *path_src)
+{
+ strcpy(path_dst, path_src);
+ BLI_clean(path_dst);
+ return (strcmp(path_dst, path_src) == 0) ? FALSE : TRUE;
+}
+
/* make sure path names are correct for OS */
static void clean_paths(Main *main)
{
- struct BPathIterator *bpi;
- char filepath_expanded[1024];
Scene *scene;
- for(BLI_bpathIterator_init(&bpi, main, main->name, BPATH_USE_PACKED); !BLI_bpathIterator_isDone(bpi); BLI_bpathIterator_step(bpi)) {
- BLI_bpathIterator_getPath(bpi, filepath_expanded);
-
- BLI_clean(filepath_expanded);
-
- BLI_bpathIterator_setPath(bpi, filepath_expanded);
- }
-
- BLI_bpathIterator_free(bpi);
+ bpath_traverse_main(main, clean_paths_visit_cb, 0, NULL);
for(scene= main->scene.first; scene; scene= scene->id.next) {
BLI_clean(scene->r.pic);
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 986b3acf6b0..d60d32a4a51 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -391,7 +391,7 @@ void make_local_image(struct Image *ima)
iman->id.us= 0;
/* Remap paths of new ID using old library as base. */
- bpath_traverse_id(&iman->id, bpath_relocate_visitor, user_data);
+ bpath_traverse_id(bmain, &iman->id, bpath_relocate_visitor, 0, user_data);
tex= bmain->tex.first;
while(tex) {
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index f6a5a7f9427..be495a7882f 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1253,7 +1253,7 @@ int new_id(ListBase *lb, ID *id, const char *tname)
void id_clear_lib_data(Main *bmain, ID *id)
{
char *user_data[2]= {bmain->name, id->lib->filepath};
- bpath_traverse_id(id, bpath_relocate_visitor, user_data);
+ bpath_traverse_id(bmain, id, bpath_relocate_visitor, 0, user_data);
id->lib= NULL;
id->flag= LIB_LOCAL;
new_id(which_libbase(bmain, GS(id->name)), id, NULL);