issue 10683

When the solution is converted to Visual Studio 2010, the command line to invoke make_buildinfo changes from:
$(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)\"
to
$(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)"
If the final backslash is omitted, the backslash in IntDir will escape the quote, thus passing the quote in as part of the path name.

This solution is a hack-fix to that problem by skipping any trailing quote from the path name.  It works as long as we don't need any additional arguments to make_buildinfo.exe.  This will help all those sould that are going to run this project through the visual studio autoconverter and get the same error.
This commit is contained in:
Kristján Valur Jónsson 2010-12-13 03:32:10 +00:00
parent 3c54ea6aba
commit 8d28a92eda

View file

@ -91,6 +91,17 @@ int main(int argc, char*argv[])
if (argc > 2) {
tmpdir = argv[2];
strcat_s(tmppath, _countof(tmppath), tmpdir);
/* Hack fix for bad command line: If the command is issued like this:
* $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)"
* we will get a trailing quote because IntDir ends with a backslash that then
* escapes the final ". To simplify the life for developers, catch that problem
* here by cutting it off.
* The proper command line, btw is:
* $(SolutionDir)make_buildinfo.exe" Debug "$(IntDir)\"
* Hooray for command line parsing on windows.
*/
if (strlen(tmppath) > 0 && tmppath[strlen(tmppath)-1] == '"')
tmppath[strlen(tmppath)-1] = '\0';
strcat_s(tmppath, _countof(tmppath), "\\");
}