Browse Source

ENH: speed up for NOTFOUND

Bill Hoffman 21 years ago
parent
commit
f49e76899c
1 changed files with 10 additions and 4 deletions
  1. 10 4
      Source/cmSystemTools.cxx

+ 10 - 4
Source/cmSystemTools.cxx

@@ -304,12 +304,18 @@ bool cmSystemTools::IsOn(const char* val)
 
 bool cmSystemTools::IsNOTFOUND(const char* val)
 {
-  cmsys::RegularExpression reg("-NOTFOUND$");
-  if(reg.find(val))
+  int len = strlen(val);
+  const char* notfound = "-NOTFOUND";
+  const int lenNotFound = 9;
+  if(len < lenNotFound-1)
     {
-    return true;
+    return false;
+    }
+  if(len == lenNotFound-1)
+    {
+    return ( strcmp(val, "NOTFOUND") == 0);
     }
-  return std::string("NOTFOUND") == val;
+  return ((strncmp((val + (len - lenNotFound)), notfound, lenNotFound) == 0));
 }