David Baron <email@example.com> has denied Stephen Walker <firstname.lastname@example.org>'s request for superreview: Bug 249782: Make Mozilla compile with Microsoft Visual Studio 2005 http://bugzilla.mozilla.org/show_bug.cgi?id=249782 Attachment 152300: Make Mozilla build http://bugzilla.mozilla.org/attachment.cgi?id=152300&action=edit ------- Additional Comments from David Baron <email@example.com> > AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.]) I'm somewhat skeptical whether giving an error on an unknown compiler is a good idea in the first place. It probably is in practice, though. >Index: xpcom/io/nsLocalFileWin.cpp > // search for first slash after the drive (or volume) name >- unsigned char* slash = _mbschr(path, '\\'); >+ unsigned char* slash = NS_CONST_CAST(unsigned char*, _mbschr(path, '\\')); The initial assignment to |path| should use BeginWriting() instead of get(), and |path| should also be non-const. You may need some NS_CONST_CAST gymnastics because of the C-ish (rather than C++-ish with 2 overloaded forms varying in const-ness) signature of _mbsstr, but you should give the variables the right constness. >@@ -759,7 +759,7 @@ >- unsigned char * doubleDot = _mbsstr(nodePath, (unsigned char *)"\\.."); >+ unsigned char * doubleDot = NS_CONST_CAST(unsigned char *, _mbsstr(nodePath, (unsigned char *)"\\..")); doubleDot should be |const unsigned char*|. >Index: directory/c-sdk/build.mk A brief explanation of these changes would be useful. How do you know they won't break older versions?