[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12735] trunk/blender/source/blender/ blenloader/intern/readfile.c: Fileversions now have subversions (like 2.45. 10), this was not correctly

Ton Roosendaal ton at blender.org
Fri Nov 30 16:12:32 CET 2007


Revision: 12735
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12735
Author:   ton
Date:     2007-11-30 16:12:31 +0100 (Fri, 30 Nov 2007)

Log Message:
-----------
Fileversions now have subversions (like 2.45.10), this was not correctly
supported with library referencing yet.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-30 14:10:36 UTC (rev 12734)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-30 15:12:31 UTC (rev 12735)
@@ -479,8 +479,28 @@
 	strcat(name, filename);
 }
 
-static Main *blo_find_main(ListBase *mainlist, const char *name, const char *relabase)
+static void read_file_version(FileData *fd, Main *main)
 {
+	BHead *bhead;
+	
+	for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
+		if (bhead->code==GLOB) {
+			FileGlobal *fg= read_struct(fd, bhead, "Global");
+			if(fg) {
+				main->subversionfile= fg->subversion;
+				main->minversionfile= fg->minversion;
+				main->minsubversionfile= fg->minsubversion;
+				MEM_freeN(fg);
+			}
+			else if (bhead->code==ENDB)
+				break;
+		}
+	}
+}
+
+
+static Main *blo_find_main(FileData *fd, ListBase *mainlist, const char *name, const char *relabase)
+{
 	Main *m;
 	Library *lib;
 	char name1[FILE_MAXDIR+FILE_MAXFILE];
@@ -508,6 +528,8 @@
 	
 	m->curlib= lib;
 	
+	read_file_version(fd, m);
+	
 	if(G.f & G_DEBUG) printf("blo_find_main: added new lib %s\n", name);
 	return m;
 }
@@ -728,26 +750,6 @@
 	return(bhead);
 }
 
-#if 0
-static void get_blender_subversion(FileData *fd)
-{
-	BHead *bhead;
-	
-	for (bhead= blo_firstbhead(fd); bhead; bhead= blo_nextbhead(fd, bhead)) {
-		if (bhead->code==GLOB) {
-			FileGlobal *fg= read_struct(fd, bhead, "Global");
-			fd->filesubversion= fg->subversion;
-			fd->fileminversion= fg->minversion;
-			fd->fileminsubversion= fg->minsubversion;
-			MEM_freeN(fg);
-			return;
-		} 
-		else if (bhead->code==ENDB)
-			break;
-	}
-}
-#endif
-
 static void decode_blender_header(FileData *fd)
 {
 	char header[SIZEOFBLENDERHEADER], num[4];
@@ -7382,7 +7384,7 @@
 
 			if(bheadlib) {
 				Library *lib= read_struct(fd, bheadlib, "Library");
-				Main *ptr= blo_find_main(&fd->mainlist, lib->name, fd->filename);
+				Main *ptr= blo_find_main(fd, &fd->mainlist, lib->name, fd->filename);
 
 				id= is_yet_read(fd, ptr, bhead);
 
@@ -8148,7 +8150,7 @@
 	blo_split_main(&fd->mainlist, G.main);
 
 	/* which one do we need? */
-	mainl = blo_find_main(&fd->mainlist, dir, G.sce);
+	mainl = blo_find_main(fd, &fd->mainlist, dir, G.sce);
 	
 	mainl->versionfile= fd->fileversion;	/* needed for do_version */
 	





More information about the Bf-blender-cvs mailing list