]> git.mxchange.org Git - simgear.git/commitdiff
nasal::String: add ends_with method
authorThomas Geymayer <tomgey@gmail.com>
Mon, 15 Jul 2013 20:26:11 +0000 (22:26 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Mon, 15 Jul 2013 20:26:11 +0000 (22:26 +0200)
simgear/nasal/cppbind/NasalString.cxx
simgear/nasal/cppbind/NasalString.hxx
simgear/nasal/cppbind/cppbind_test.cxx

index 41388b3d51592edaa9b94345a9f1ae76fded19f7..dd3cb5ab3709f1ed591d28828d3189f8ca7f50f4 100644 (file)
@@ -136,6 +136,12 @@ namespace nasal
     return rhs.size() <= size() && compare(0, npos, rhs) == 0;
   }
 
+  //----------------------------------------------------------------------------
+  bool String::ends_with(const String& rhs) const
+  {
+    return rhs.size() <= size() && compare(size() - rhs.size(), npos, rhs) == 0;
+  }
+
   //----------------------------------------------------------------------------
   size_t String::find(const char c, size_t pos) const
   {
index d30dfebdff70668848dcfca9286911bcdb959667..ad9e506f7cf16e5ebdcdcb0785bf424ff6efd2f1 100644 (file)
@@ -59,6 +59,7 @@ namespace nasal
 
       int compare(size_t pos, size_t len, const String& rhs) const;
       bool starts_with(const String& rhs) const;
+      bool ends_with(const String& rhs) const;
 
       size_t find(const char c, size_t pos = 0) const;
       size_t find_first_of(const String& chr, size_t pos = 0) const;
index 29cb556a6bbe93749158cb2294bb47e147d38f45..6d75b96607e3c68802d80a21c514f549c09c8be0 100644 (file)
@@ -286,6 +286,13 @@ int main(int argc, char* argv[])
   VERIFY( !string.starts_with(String(c, "Test1")) );
   VERIFY( !string.starts_with(String(c, "bb")) );
   VERIFY( !string.starts_with(String(c, "bbasdasdafasd")) );
+  VERIFY( string.ends_with(String(c, "t")) );
+  VERIFY( string.ends_with(String(c, "st")) );
+  VERIFY( string.ends_with(String(c, "est")) );
+  VERIFY( string.ends_with(String(c, "Test")) );
+  VERIFY( !string.ends_with(String(c, "1Test")) );
+  VERIFY( !string.ends_with(String(c, "abc")) );
+  VERIFY( !string.ends_with(String(c, "estasdasd")) );
   VERIFY( string.find('e') == 1 );
   VERIFY( string.find('9') == String::npos );
   VERIFY( string.find_first_of(String(c, "st")) == 2 );