Преглед изворни кода

ENH: ExpandListArguments(): empty elements in semi-colon-separated string-list can now be ignored.

Sebastien Barre пре 23 година
родитељ
комит
ccbdc30a8c
2 измењених фајлова са 8 додато и 3 уклоњено
  1. 6 2
      Source/cmSystemTools.cxx
  2. 2 1
      Source/cmSystemTools.h

+ 6 - 2
Source/cmSystemTools.cxx

@@ -1609,7 +1609,8 @@ void cmSystemTools::GlobDirs(const char *fullPath,
 
 
 void cmSystemTools::ExpandListArguments(std::vector<std::string> const& arguments, 
-                                        std::vector<std::string>& newargs)
+                                        std::vector<std::string>& newargs,
+                                        bool ignore_empty)
 {
   std::vector<std::string>::const_iterator i;
   for(i = arguments.begin();i != arguments.end(); ++i)
@@ -1630,7 +1631,10 @@ void cmSystemTools::ExpandListArguments(std::vector<std::string> const& argument
           {
           len = i->size()-start;
           }
-        newargs.push_back(i->substr(start, len));
+        if (ignore_empty == false || len > 0)
+          {
+          newargs.push_back(i->substr(start, len));
+          }
         start = endpos+1;
         }
       }

+ 2 - 1
Source/cmSystemTools.h

@@ -48,7 +48,8 @@ public:
    *  containing the expanded versions of all arguments in argsIn.
    */
   static void ExpandListArguments(std::vector<std::string> const& argsIn,
-                                  std::vector<std::string>& argsOut);
+                                  std::vector<std::string>& argsOut,
+                                  bool ignore_empty = false);
 
   /**
    * Look for and replace registry values in a string