merge with/from trunk at r35190
[blender.git] / source / blender / blenkernel / intern / blender.c
index e34b4bef8d41e9e8829e1e4a216db5980ad3a321..0556acbdecee464a8fdc0d058afb1c5ba8563348 100644 (file)
@@ -448,6 +448,8 @@ static int read_undosave(bContext *C, UndoElem *uel)
 
        BLI_strncpy(mainstr, G.main->name, sizeof(mainstr));    /* temporal store */
 
+       strcpy(mainstr, G.main->name);  /* temporal store */
+
        fileflags= G.fileflags;
        G.fileflags |= G_FILE_NO_UI;
 
@@ -674,11 +676,19 @@ char *BKE_undo_menu_string(void)
 
        /* saves quit.blend */
 void BKE_undo_save_quit(void)
+{
+       char str[FILE_MAXDIR+FILE_MAXFILE];
+
+       BLI_make_file_string("/", str, btempdir, "quit.blend");
+
+       BKE_undo_save(str);
+}
+
+void BKE_undo_save(char *fname)
 {
        UndoElem *uel;
        MemFileChunk *chunk;
        int file;
-       char str[FILE_MAXDIR+FILE_MAXFILE];
        
        if( (U.uiflag & USER_GLOBALUNDO)==0) return;
        
@@ -691,9 +701,7 @@ void BKE_undo_save_quit(void)
        /* no undo state to save */
        if(undobase.first==undobase.last) return;
                
-       BLI_make_file_string("/", str, btempdir, "quit.blend");
-
-       file = open(str,O_BINARY+O_WRONLY+O_CREAT+O_TRUNC, 0666);
+       file = open(fname, O_BINARY+O_WRONLY+O_CREAT+O_TRUNC, 0666);
        if(file == -1) {
                //XXX error("Unable to save %s, check you have permissions", str);
                return;
@@ -707,8 +715,8 @@ void BKE_undo_save_quit(void)
        
        close(file);
        
-       if(chunk) ; //XXX error("Unable to save %s, internal error", str);
-       else printf("Saved session recovery to %s\n", str);
+       if(chunk) ; //XXX error("Unable to save %s, internal error", fname);
+       else printf("Saved session recovery to %s\n", fname);
 }
 
 /* sets curscene */