Browse Source

ENH: remove deps to vtkString by using KWSys (a handful of functions have been moved to KWSys)

Sebastien Barre 21 years ago
parent
commit
2415ff678a
2 changed files with 28 additions and 0 deletions
  1. 22 0
      Source/kwsys/SystemTools.cxx
  2. 6 0
      Source/kwsys/SystemTools.hxx.in

+ 22 - 0
Source/kwsys/SystemTools.cxx

@@ -936,6 +936,28 @@ char* SystemTools::ReplaceChars(char* str, const char *toreplace, char replaceme
   return str;
 }
 
+// Returns if string starts with another string
+bool vtkString::StringStartsWith(const char* str1, const char* str2)
+{
+  if (!str1 || !str2)
+    {
+    return false;
+    }
+  size_t len1 = strlen(str1), len2 = strlen(str2);
+  return len1 >= len2 && !strncmp(str1, str2, len2) ? true : false
+}
+
+// Returns if string ends with another string
+bool vtkString::StringEndsWith(const char* str1, const char* str2)
+{
+  if (!str1 || !str2)
+    {
+    return false;
+    }
+  size_t len1 = strlen(str1), len2 = strlen(str2);
+  return len1 >= len2 &&  !strncmp(str1 + (len1 - len2), str2, len2) ? true : false;
+}
+
 // Returns a pointer to the last occurence of str2 in str1
 const char* SystemTools::FindLastString(const char* str1, const char* str2)
 {

+ 6 - 0
Source/kwsys/SystemTools.hxx.in

@@ -154,6 +154,12 @@ public:
    */
   static char* ReplaceChars(char* str, const char *toreplace,char replacement);
   
+  /**
+   * Returns true if str1 starts or ends with str2
+   */
+  static bool StringStartsWith(const char* str1, const char* str2);
+  static bool StringEndsWith(const char* str1, const char* str2);
+
   /**
    * Returns a pointer to the last occurence of str2 in str1
    */