浏览代码

Temporary file renaming works now both in Virtualbox and natively

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6960 8c9fc860-2736-0410-a75d-ab315db34111
felixf 8 年之前
父节点
当前提交
59e9b2382a
共有 1 个文件被更改,包括 3 次插入4 次删除
  1. 3 4
      source/Generic.Unix.UnixFiles.Mod

+ 3 - 4
source/Generic.Unix.UnixFiles.Mod

@@ -829,11 +829,10 @@ TYPE
 							Halt( SELF, FALSE, "UnixFiles.File.Register: rename failed" )  
 						END;
 
-						IF fo # NoDesc THEN 
-							TRACE(fo, fd); 
-							res := Unix.close(fo); 
+						IF fo # NoDesc THEN (* SELF still refers to old file *)
+							res := Unix.close(fd); 
 							res := Unix.unlink(ADDRESSOF(workName));  (* VirtualBox ! Can only delete file when closed. *)
-							fd := Unix.open( ADDRESSOF( registerName ), CreateFlags, Unix.rwrwr );
+							fd := Unix.open( ADDRESSOF( registerName ), Unix.rdwr, Unix.rwrwr );
 						END;
 
 						workName := registerName;  registerName := "";  tempFile := FALSE;