[Bf-blender-cvs] [02e378b] master: Fix for fix: Paths and copying object

Campbell Barton noreply at git.blender.org
Tue Dec 10 07:30:52 CET 2013


Commit: 02e378bf19d349031fb7397ccf7e26885289f34d
Author: Campbell Barton
Date:   Tue Dec 10 17:28:25 2013 +1100
http://developer.blender.org/rB02e378bf19d349031fb7397ccf7e26885289f34d

Fix for fix: Paths and copying object

Fix for T37471 made path copying modify local paths,
now apply the same logic used for save-as.

===================================================================

M	source/blender/blenkernel/intern/blender.c

===================================================================

diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 38765aa..96adade 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -897,6 +897,12 @@ int BKE_copybuffer_save(const char *filename, ReportList *reports)
 	ListBase *lbarray[MAX_LIBARRAY], *fromarray[MAX_LIBARRAY];
 	int a, retval;
 	
+	/* path backup/restore */
+	void     *path_list_backup;
+	const int path_list_flag = (BKE_BPATH_TRAVERSE_SKIP_LIBRARY | BKE_BPATH_TRAVERSE_SKIP_MULTIFILE);
+
+	path_list_backup = BKE_bpath_list_backup(G.main, path_list_flag);
+
 	BLO_main_expander(copybuffer_doit);
 	BLO_expand_main(NULL, G.main);
 	
@@ -938,6 +944,11 @@ int BKE_copybuffer_save(const char *filename, ReportList *reports)
 	/* set id flag to zero; */
 	flag_all_listbases_ids(LIB_NEED_EXPAND | LIB_DOIT, 0);
 	
+	if (path_list_backup) {
+		BKE_bpath_list_restore(G.main, path_list_flag, path_list_backup);
+		BKE_bpath_list_free(path_list_backup);
+	}
+
 	return retval;
 }




More information about the Bf-blender-cvs mailing list