# HG changeset patch # User Kelly Wilson # Date 1240433389 21600 # Node ID 7af860e4f4035540fe93c93859f48a64beed4a42 # Parent 6af2359b433ac53998952f77ede94c5681732674 Changes for mingw to compile properly diff -r 6af2359b433a -r 7af860e4f403 dmd/module.c --- a/dmd/module.c Wed Apr 22 14:40:56 2009 -0600 +++ b/dmd/module.c Wed Apr 22 14:49:49 2009 -0600 @@ -196,7 +196,7 @@ #if _WIN32 if (ext == global.params.objdir && FileName::ext(argobj) && stricmp(FileName::ext(argobj), global.obj_ext_alt) == 0) - return new File(argobj); + return new File((char*)argobj); #endif return new File(FileName::forceExt(argobj, ext)); } diff -r 6af2359b433a -r 7af860e4f403 dmd/mtype.c --- a/dmd/mtype.c Wed Apr 22 14:40:56 2009 -0600 +++ b/dmd/mtype.c Wed Apr 22 14:49:49 2009 -0600 @@ -88,6 +88,12 @@ int Tsize_t = Tuns32; int Tptrdiff_t = Tint32; +#if _WIN32 +static double zero = 0; +double Port::nan = NAN; +double Port::infinity = 1/zero; +#endif + /***************************** Type *****************************/ ClassDeclaration *Type::typeinfo; diff -r 6af2359b433a -r 7af860e4f403 dmd/root/root.c --- a/dmd/root/root.c Wed Apr 22 14:40:56 2009 -0600 +++ b/dmd/root/root.c Wed Apr 22 14:49:49 2009 -0600 @@ -579,9 +579,6 @@ switch (*e) { - case '/': - return e + 1; - #if _WIN32 case '/': case '\\': @@ -594,6 +591,9 @@ */ if (e == str + 1 || e == str + len - 1) return e + 1; +#else + case '/': + return e + 1; #endif default: if (e == str) @@ -1672,12 +1672,7 @@ psize = sizeof(buffer); for (;;) { -#if _WIN32 - count = _vsnprintf(p,psize,format,args); - if (count != -1) - break; - psize *= 2; -#elif POSIX +#if POSIX || IN_LLVM va_list va; va_copy(va, args); /* @@ -1697,6 +1692,11 @@ psize = count + 1; else break; +#elif _WIN32 + count = _vsnprintf(p,psize,format,args); + if (count != -1) + break; + psize *= 2; #endif p = (char *) alloca(psize); // buffer too small, try again with larger size }