[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21560] branches/blender2.5/blender/source /blender/blenlib/intern/fileops.c: 2.5: bugfix for BLI_is_writable, made render with Save Buffers

Brecht Van Lommel brecht at blender.org
Mon Jul 13 20:47:09 CEST 2009


Revision: 21560
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21560
Author:   blendix
Date:     2009-07-13 20:47:08 +0200 (Mon, 13 Jul 2009)

Log Message:
-----------
2.5: bugfix for BLI_is_writable, made render with Save Buffers
not work anymore. Now it first tries to open the file without
truncating, and only then tries to create a new file.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenlib/intern/fileops.c

Modified: branches/blender2.5/blender/source/blender/blenlib/intern/fileops.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenlib/intern/fileops.c	2009-07-13 12:17:07 UTC (rev 21559)
+++ branches/blender2.5/blender/source/blender/blenlib/intern/fileops.c	2009-07-13 18:47:08 UTC (rev 21560)
@@ -153,10 +153,24 @@
 {
 	int file;
 	
+	/* first try to open without creating */
 	file = open(filename, O_BINARY | O_RDWR, 0666);
 	
-	if (file < 0)
-		return 0;
+	if (file < 0) {
+		/* now try to open and create. a test without actually
+		 * creating a file would be nice, but how? */
+		file = open(filename, O_BINARY | O_RDWR | O_CREAT, 0666);
+		
+		if(file < 0) {
+			return 0;
+		}
+		else {
+			/* success, delete the file we create */
+			close(file);
+			BLI_delete(filename, 0, 0);
+			return 1;
+		}
+	}
 	else {
 		close(file);
 		return 1;





More information about the Bf-blender-cvs mailing list