Fileversions now have subversions (like 2.45.10), this was not correctly
supported with library referencing yet.
This commit is contained in:
@@ -479,7 +479,27 @@ static void cleanup_path(const char *relabase, char *name)
|
||||
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;
|
||||
@@ -508,6 +528,8 @@ static Main *blo_find_main(ListBase *mainlist, const char *name, const char *rel
|
||||
|
||||
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 @@ BHead *blo_nextbhead(FileData *fd, BHead *thisblock)
|
||||
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 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
|
||||
|
||||
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 @@ static Library* library_append( Scene *scene, char* file, char *dir, int idcode,
|
||||
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 */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user