فهرست منبع

Convert loops populating maybe-empty content into the common pattern.

Stephen Kelly 10 سال پیش
والد
کامیت
7b8725bf84
3فایلهای تغییر یافته به همراه30 افزوده شده و 17 حذف شده
  1. 8 4
      Source/cmListCommand.cxx
  2. 8 4
      Source/cmLocalGenerator.cxx
  3. 14 9
      Source/cmMacroCommand.cxx

+ 8 - 4
Source/cmListCommand.cxx

@@ -254,14 +254,18 @@ bool cmListCommand::HandleAppendCommand(std::vector<std::string> const& args)
   // expand the variable
   std::string listString;
   this->GetListString(listString, listName);
+
+  if(!listString.empty() && !args.empty())
+    {
+    listString += ";";
+    }
+  const char* sep = "";
   size_t cc;
   for ( cc = 2; cc < args.size(); ++ cc )
     {
-    if(!listString.empty())
-      {
-      listString += ";";
-      }
+    listString += sep;
     listString += args[cc];
+    sep = ";";
     }
 
   this->Makefile->AddDefinition(listName, listString.c_str());

+ 8 - 4
Source/cmLocalGenerator.cxx

@@ -3011,13 +3011,17 @@ cmLocalGenerator::ConvertToRelativePath(const std::vector<std::string>& local,
   // trailing slash in the input then the last iteration of the loop
   // will add a slash followed by an empty string which will preserve
   // the trailing slash in the output.
+
+  if(!relative.empty() && !remote.empty())
+    {
+    relative += "/";
+    }
+  const char* sep = "";
   for(unsigned int i=common; i < remote.size(); ++i)
     {
-    if(!relative.empty())
-      {
-      relative += "/";
-      }
+    relative += sep;
     relative += remote[i];
+    sep = "/";
     }
 
   // Finally return the path.

+ 14 - 9
Source/cmMacroCommand.cxx

@@ -166,15 +166,17 @@ bool cmMacroHelperCommand::InvokeInitialPass
             {
             if (expandedArgs.size() > this->Args.size() - 1)
               {
+              if (!argnDef.empty() && !expandedArgs.empty())
+                {
+                argnDef += ";";
+                }
               std::vector<std::string>::const_iterator eit
                   = expandedArgs.begin() + (this->Args.size() - 1);
+              const char* sep = "";
               for( ; eit != expandedArgs.end(); ++eit)
                 {
-                if (!argnDef.empty())
-                  {
-                  argnDef += ";";
-                  }
-                argnDef += *eit;
+                argnDef += sep + *eit;
+                sep = ";";
                 }
               }
             argnDefInitialized = true;
@@ -191,14 +193,17 @@ bool cmMacroHelperCommand::InvokeInitialPass
           // repleace ARGV, compute it only once
           if (!argvDefInitialized)
             {
+            if (!argvDef.empty() && !expandedArgs.empty())
+              {
+              argvDef += ";";
+              }
+            const char* sep = "";
             std::vector<std::string>::const_iterator eit;
             for(eit = expandedArgs.begin(); eit != expandedArgs.end(); ++eit)
               {
-              if (!argvDef.empty())
-                {
-                argvDef += ";";
-                }
+              argvDef += sep;
               argvDef += *eit;
+              sep = ";";
               }
             argvDefInitialized = true;
             }