From 7db671a14374fdbfb8ae87ab9618bca111f4e8a5 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 13 Oct 2016 12:47:50 -0400 Subject: cmcldeps: search for single-byte strings as characters --- Source/cmcldeps.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/cmcldeps.cxx b/Source/cmcldeps.cxx index 167d60a..aed67b9 100644 --- a/Source/cmcldeps.cxx +++ b/Source/cmcldeps.cxx @@ -258,7 +258,7 @@ int main() // needed to suppress filename output of msvc tools std::string srcfilename; { - std::string::size_type pos = srcfile.rfind("\\"); + std::string::size_type pos = srcfile.rfind('\\'); if (pos == std::string::npos) { srcfilename = srcfile; } else { @@ -280,7 +280,7 @@ int main() clrest = replace(clrest, objfile, objfile + ".dep.obj "); // rc: src\x\x.rc -> cl: /Tc src\x\x.rc - if (srcfile.find(" ") != std::string::npos) + if (srcfile.find(' ') != std::string::npos) srcfile = "\"" + srcfile + "\""; clrest = replace(clrest, srcfile, "/Tc " + srcfile); -- cgit v0.12 From 47092d3e809be971264a8d5416ff3cb9255f6565 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 13 Oct 2016 12:48:24 -0400 Subject: cmcldeps: append strings as strings --- Source/cmcldeps.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmcldeps.cxx b/Source/cmcldeps.cxx index aed67b9..bfbb5fd 100644 --- a/Source/cmcldeps.cxx +++ b/Source/cmcldeps.cxx @@ -205,7 +205,7 @@ static int process(const std::string& srcfilename, const std::string& dfile, std::vector command; for (std::vector::iterator i = args.begin(); i != args.end(); ++i) { - command.push_back(i->c_str()); + command.push_back(*i); } // run the command int exit_code = 0; -- cgit v0.12 From 70e268da3e5f8e00bdf065786cd685a9660fe1c4 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 13 Oct 2016 12:48:37 -0400 Subject: cmcldeps: prefer the /TC flag The /TC flag causes all source files to be processed as C source files. We know that there is only one, so this is safe. --- Source/cmcldeps.cxx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Source/cmcldeps.cxx b/Source/cmcldeps.cxx index bfbb5fd..b86ad6e 100644 --- a/Source/cmcldeps.cxx +++ b/Source/cmcldeps.cxx @@ -279,12 +279,7 @@ int main() clrest = replace(clrest, "/fo", "/out:"); clrest = replace(clrest, objfile, objfile + ".dep.obj "); - // rc: src\x\x.rc -> cl: /Tc src\x\x.rc - if (srcfile.find(' ') != std::string::npos) - srcfile = "\"" + srcfile + "\""; - clrest = replace(clrest, srcfile, "/Tc " + srcfile); - - cl = "\"" + cl + "\" /P /DRC_INVOKED "; + cl = "\"" + cl + "\" /P /DRC_INVOKED /TC "; // call cl in object dir so the .i is generated there std::string objdir; -- cgit v0.12