Skip to content

Commit

Permalink
fix building against MS runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
rainers committed Aug 29, 2015
1 parent f0879ea commit 8a1a1b2
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
13 changes: 6 additions & 7 deletions src/errors.d
Expand Up @@ -19,11 +19,6 @@ import ddmd.root.outbuffer;
import ddmd.root.rmem;

version (Windows) extern (C) int isatty(int);
version (Windows) alias _isatty = isatty;
version (Windows) int _fileno(FILE* f)
{
return f._file;
}

enum COLOR : int
{
Expand Down Expand Up @@ -65,9 +60,13 @@ version (Windows)

extern (C++) bool isConsoleColorSupported()
{
version (Windows)
version (CRuntime_DigitalMars)
{
return isatty(stderr._file) != 0;
}
else version (CRuntime_Microsoft)
{
return _isatty(_fileno(stderr)) != 0;
return isatty(fileno(stderr)) != 0;
}
else static if (__linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun)
{
Expand Down
18 changes: 9 additions & 9 deletions src/libmscoff.d
Expand Up @@ -246,7 +246,7 @@ public:
auto om = new MSCoffObjModule();
// Include MSCoffLibHeader in base[0..length], so we don't have to repro it
om.base = cast(ubyte*)buf + offset - MSCoffLibHeader.sizeof;
om.length = size + MSCoffLibHeader.sizeof;
om.length = cast(uint)(size + MSCoffLibHeader.sizeof);
om.offset = 0;
if (header.object_name[0] == '/')
{
Expand Down Expand Up @@ -332,7 +332,7 @@ public:
goto Lcorrupt;
}
uint moff = member_file_offsets[memi];
for (uint m = mstart; 1; m++)
for (size_t m = mstart; 1; m++)
{
if (m == objmodules.dim)
{
Expand All @@ -357,7 +357,7 @@ public:
*/
auto om = new MSCoffObjModule();
om.base = cast(ubyte*)buf;
om.length = buflen;
om.length = cast(uint)buflen;
om.offset = 0;
om.name = global.params.preservePaths ? module_name : FileName.name(module_name); // remove path, but not extension
om.scan = 1;
Expand Down Expand Up @@ -529,7 +529,7 @@ private:
{
MSCoffObjModule* om = objmodules[i];
moffset += moffset & 1;
om.offset = moffset;
om.offset = cast(uint)moffset;
if (om.scan)
moffset += MSCoffLibHeader.sizeof + om.length;
else
Expand All @@ -541,7 +541,7 @@ private:
MSCoffObjModule om;
om.name_offset = -1;
om.base = null;
om.length = 4 + objsymbols.dim * 4 + slength;
om.length = cast(uint)(4 + objsymbols.dim * 4 + slength);
om.offset = 8;
om.name = cast(char*)"";
time_t file_time = 0;
Expand All @@ -556,7 +556,7 @@ private:
MSCoffOmToHeader(&h, &om);
libbuf.write(&h, h.sizeof);
char[4] buf;
Port.writelongBE(objsymbols.dim, buf.ptr);
Port.writelongBE(cast(uint)objsymbols.dim, buf.ptr);
libbuf.write(buf.ptr, 4);
// Sort objsymbols[] in module offset order
qsort(objsymbols.data, objsymbols.dim, (objsymbols.data[0]).sizeof, &MSCoffObjSymbol_offset_cmp);
Expand Down Expand Up @@ -584,10 +584,10 @@ private:
if (libbuf.offset & 1)
libbuf.writeByte('\n');
assert(libbuf.offset == secondLinkerMemberOffset);
om.length = 4 + objmodules.dim * 4 + 4 + objsymbols.dim * 2 + slength;
om.length = cast(uint)(4 + objmodules.dim * 4 + 4 + objsymbols.dim * 2 + slength);
MSCoffOmToHeader(&h, &om);
libbuf.write(&h, h.sizeof);
Port.writelongLE(objmodules.dim, buf.ptr);
Port.writelongLE(cast(uint)objmodules.dim, buf.ptr);
libbuf.write(buf.ptr, 4);
for (size_t i = 0; i < objmodules.dim; i++)
{
Expand All @@ -596,7 +596,7 @@ private:
Port.writelongLE(om2.offset, buf.ptr);
libbuf.write(buf.ptr, 4);
}
Port.writelongLE(objsymbols.dim, buf.ptr);
Port.writelongLE(cast(uint)objsymbols.dim, buf.ptr);
libbuf.write(buf.ptr, 4);
// Sort objsymbols[] in lexical order
qsort(objsymbols.data, objsymbols.dim, (objsymbols.data[0]).sizeof, &MSCoffObjSymbol_cmp);
Expand Down

0 comments on commit 8a1a1b2

Please sign in to comment.