summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmSourceFile.cxx7
-rw-r--r--Source/cmSourceFilesCommand.cxx2
-rw-r--r--Source/cmSourceFilesRemoveCommand.cxx2
3 files changed, 8 insertions, 3 deletions
diff --git a/Source/cmSourceFile.cxx b/Source/cmSourceFile.cxx
index 0fa21b8..965286d 100644
--- a/Source/cmSourceFile.cxx
+++ b/Source/cmSourceFile.cxx
@@ -160,7 +160,12 @@ void cmSourceFile::SetName(const char* name, const char* dir, const char *ext,
pathname += "/";
}
- pathname += m_SourceName + "." + ext;
+ pathname += m_SourceName;
+ if(ext && strlen(ext))
+ {
+ pathname += ".";
+ pathname += ext;
+ }
m_FullPath = pathname;
m_SourceExtension = ext;
return;
diff --git a/Source/cmSourceFilesCommand.cxx b/Source/cmSourceFilesCommand.cxx
index e6d7176..4b93f4c 100644
--- a/Source/cmSourceFilesCommand.cxx
+++ b/Source/cmSourceFilesCommand.cxx
@@ -76,7 +76,7 @@ bool cmSourceFilesCommand::InitialPass(std::vector<std::string> const& args)
std::string ext = cmSystemTools::GetFilenameExtension(copy);
std::string name_no_ext = cmSystemTools::GetFilenameName(copy.c_str());
name_no_ext = name_no_ext.substr(0, name_no_ext.length()-ext.length());
- if ( ext[0] == '.' )
+ if ( ext.length() && ext[0] == '.' )
{
ext = ext.substr(1);
}
diff --git a/Source/cmSourceFilesRemoveCommand.cxx b/Source/cmSourceFilesRemoveCommand.cxx
index 0d1d4de..e2cc875 100644
--- a/Source/cmSourceFilesRemoveCommand.cxx
+++ b/Source/cmSourceFilesRemoveCommand.cxx
@@ -67,7 +67,7 @@ bool cmSourceFilesRemoveCommand::InitialPass(std::vector<std::string> const& arg
std::string path = cmSystemTools::GetFilenamePath(copy);
std::string name_no_ext = cmSystemTools::GetFilenameName(copy.c_str());
name_no_ext = name_no_ext.substr(0, name_no_ext.length()-ext.length());
- if ( ext[0] == '.' )
+ if ( ext.length() && ext[0] == '.' )
{
ext = ext.substr(1);
}