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

Use cmCacheManager to load entries from the cache

Ben Boeckel пре 15 година
родитељ
комит
90abc3a027
2 измењених фајлова са 3 додато и 37 уклоњено
  1. 3 36
      Source/cmLoadCacheCommand.cxx
  2. 0 1
      Source/cmLoadCacheCommand.h

+ 3 - 36
Source/cmLoadCacheCommand.cxx

@@ -174,7 +174,9 @@ void cmLoadCacheCommand::CheckLine(const char* line)
   // Check one line of the cache file.
   std::string var;
   std::string value;
-  if(this->ParseEntry(line, var, value))
+  cmCacheManager::CacheEntryType type = cmCacheManager::UNINITIALIZED;
+  if(cmCacheManager::ParseEntry(line, var, value, type) ||
+    cmCacheManager::ParseEntry(line, var, value))
     {
     // Found a real entry.  See if this one was requested.
     if(this->VariablesToRead.find(var) != this->VariablesToRead.end())
@@ -193,38 +195,3 @@ void cmLoadCacheCommand::CheckLine(const char* line)
       }
     }
 }
-
-//----------------------------------------------------------------------------
-bool cmLoadCacheCommand::ParseEntry(const char* entry, std::string& var,
-                                    std::string& value)
-{
-  // input line is:         key:type=value
-  cmsys::RegularExpression reg("^([^:]*):([^=]*)=(.*[^\t ]|[\t ]*)[\t ]*$");
-  // input line is:         "key":type=value
-  cmsys::RegularExpression 
-    regQuoted("^\"([^\"]*)\":([^=]*)=(.*[^\t ]|[\t ]*)[\t ]*$");
-  bool flag = false;
-  if(regQuoted.find(entry))
-    {
-    var = regQuoted.match(1);
-    value = regQuoted.match(3);
-    flag = true;
-    }
-  else if (reg.find(entry))
-    {
-    var = reg.match(1);
-    value = reg.match(3);
-    flag = true;
-    }
-
-  // if value is enclosed in single quotes ('foo') then remove them
-  // it is used to enclose trailing space or tab
-  if (flag && 
-      value.size() >= 2 &&
-      value[0] == '\'' && 
-      value[value.size() - 1] == '\'') 
-    {
-    value = value.substr(1, value.size() - 2);
-    }
-  return flag;
-}

+ 0 - 1
Source/cmLoadCacheCommand.h

@@ -83,7 +83,6 @@ protected:
   
   bool ReadWithPrefix(std::vector<std::string> const& args);
   void CheckLine(const char* line);
-  bool ParseEntry(const char* entry, std::string& var, std::string& value);
 };