Mercurial > projects > ddmd
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); |