merged changes to revision 24077
[blender.git] / source / blender / blenloader / intern / writefile.c
index 506094eb1eff3c6d6b042ba369fc61a3ad4852f3..b35648723865347d65a99caafcec44f657bd502c 100644 (file)
@@ -2315,7 +2315,7 @@ static void write_scripts(WriteData *wd, ListBase *idbase)
 /* context is usually defined by WM, two cases where no WM is available:
  * - for forward compatibility, curscreen has to be saved
  * - for undofile, curscene needs to be saved */
-static void write_global(WriteData *wd, Main *mainvar)
+static void write_global(WriteData *wd, int fileflags, Main *mainvar)
 {
        FileGlobal fg;
        bScreen *screen;
@@ -2328,8 +2328,9 @@ static void write_global(WriteData *wd, Main *mainvar)
        fg.curscene= screen->scene;
        fg.displaymode= G.displaymode;
        fg.winpos= G.winpos;
-       fg.fileflags= (G.fileflags & ~G_FILE_NO_UI);    // prevent to save this, is not good convention, and feature with concerns...
+       fg.fileflags= (fileflags & ~G_FILE_NO_UI);      // prevent to save this, is not good convention, and feature with concerns...
        fg.globalf= G.f;
+       BLI_strncpy(fg.filename, mainvar->name, sizeof(fg.filename));
 
        sprintf(subvstr, "%4d", BLENDER_SUBVERSION);
        memcpy(fg.subvstr, subvstr, 4);
@@ -2358,7 +2359,7 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil
        mywrite(wd, buf, 12);
 
        write_renderinfo(wd, mainvar);
-       write_global(wd, mainvar);
+       write_global(wd, write_flags, mainvar);
 
        /* no UI save in undo */
        if(current==NULL) {
@@ -2389,8 +2390,7 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil
        write_brushes  (wd, &mainvar->brush);
        write_scripts  (wd, &mainvar->script);
        write_gpencils (wd, &mainvar->gpencil);
-       if(current==NULL)       
-               write_libraries(wd,  mainvar->next); /* no library save in undo */
+       write_libraries(wd,  mainvar->next);
 
        if (write_user_block) {
                write_userdef(wd);