comparison dmd/File.d @ 114:e28b18c23469

added a module dmd.common for commonly used stuff it currently holds code for consistency checking of predefined versions also added a VisualD project file
author Trass3r
date Wed, 01 Sep 2010 18:21:58 +0200
parents fd4acc376c45
children af724d3510d7
comparison
equal deleted inserted replaced
113:3482c73a991b 114:e28b18c23469
1 module dmd.File; 1 module dmd.File;
2 2
3 import dmd.common;
3 import dmd.FileName; 4 import dmd.FileName;
4 import dmd.Array; 5 import dmd.Array;
5 import dmd.Util; 6 import dmd.Util;
6 7
7 import core.stdc.stdlib; 8 import core.stdc.stdlib;
45 { 46 {
46 if (buffer !is null) { 47 if (buffer !is null) {
47 if (ref_ == 0) { 48 if (ref_ == 0) {
48 ///free(buffer); 49 ///free(buffer);
49 } else { 50 } else {
50 version (_WIN32) { 51 version (Windows) {
51 if (ref_ == 2) { 52 if (ref_ == 2) {
52 UnmapViewOfFile(buffer); 53 UnmapViewOfFile(buffer);
53 } 54 }
54 } 55 }
55 } 56 }
75 /* Read file, return !=0 if error 76 /* Read file, return !=0 if error
76 */ 77 */
77 78
78 int read() 79 int read()
79 { 80 {
80 version (POSIX) { 81 version (Posix)
82 {
81 int result = 0; 83 int result = 0;
82 84
83 string name = this.name.toChars(); 85 string name = this.name.toChars();
84 86
85 //printf("File::read('%s')\n",name); 87 //printf("File::read('%s')\n",name);
143 len = 0; 145 len = 0;
144 146
145 err1: 147 err1:
146 result = 1; 148 result = 1;
147 return result; 149 return result;
148 } else version (_WIN32) { 150 } else version (Windows) {
149 DWORD size; 151 DWORD size;
150 DWORD numread; 152 DWORD numread;
151 HANDLE h; 153 HANDLE h;
152 int result = 0; 154 int result = 0;
153 155
273 close(fd); 275 close(fd);
274 .remove(name); 276 .remove(name);
275 err: 277 err:
276 return 1; 278 return 1;
277 279
278 } else version (_WIN32) { 280 } else version (Windows) {
279 HANDLE h; 281 HANDLE h;
280 DWORD numwritten; 282 DWORD numwritten;
281 283
282 const(char)* name = toStringz(this.name.toChars()); 284 const(char)* name = toStringz(this.name.toChars());
283 h = CreateFileA(name, GENERIC_WRITE, 0, null, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, null); 285 h = CreateFileA(name, GENERIC_WRITE, 0, null, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, null);