From a2b8c1fbcbe95783c6a1240a3461d35f375a16b6 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 27 Oct 2004 08:49:41 -0400 Subject: [PATCH] BUG: Add a space before the : only if the target name is one letter long. This works around bugs in some shells' tab completion of target names. --- Source/cmLocalUnixMakefileGenerator.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index f00261c4f..827ad72ad 100644 --- a/Source/cmLocalUnixMakefileGenerator.cxx +++ b/Source/cmLocalUnixMakefileGenerator.cxx @@ -2585,9 +2585,16 @@ void cmLocalUnixMakefileGenerator::OutputMakeRule(std::ostream& fout, std::string tgt = this->ConvertToRelativeOutputPath(replace.c_str()); tgt = this->ConvertToMakeTarget(tgt.c_str()); + const char* space = ""; + if(tgt.size() == 1) + { + // Add a space before the ":" to avoid drive letter confusion on + // Windows. + space = " "; + } if(depends.empty()) { - fout << tgt.c_str() << " :\n"; + fout << tgt.c_str() << space << ":\n"; } else { @@ -2599,7 +2606,7 @@ void cmLocalUnixMakefileGenerator::OutputMakeRule(std::ostream& fout, replace = *dep; m_Makefile->ExpandVariablesInString(replace); replace = this->ConvertToMakeTarget(replace.c_str()); - fout << tgt.c_str() << " : " << replace.c_str() << "\n"; + fout << tgt.c_str() << space << ": " << replace.c_str() << "\n"; } }