diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-10-27 05:25:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-10-27 05:25:07 +0400 |
commit | cd852ce1a199da11f119394ea719f9699c76c995 (patch) | |
tree | 4c23079e83b758bce8ffb9a3c4bb030d3c5d3fbf /source/blender/blenkernel | |
parent | 4772b72951513d6554a79b94d401414265698daf (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.c | 19 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 2 |
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); |