From 8510499a79cf1411034f1d104fe0875787cf565a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 17 Nov 2010 23:17:40 +0000 Subject: [PATCH] Fixed the FindLast() char versions. They wouldn't find a character at the beginning of the string. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39470 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/support/String.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/kits/support/String.cpp b/src/kits/support/String.cpp index 1f2ee6bd5f..4a1717f100 100644 --- a/src/kits/support/String.cpp +++ b/src/kits/support/String.cpp @@ -1191,19 +1191,19 @@ BString::FindLast(const char* string, int32 beforeOffset) const int32 BString::FindLast(char c) const { - const char* start = String(); - const char* end = String() + Length(); + const char* const start = String(); + const char* end = String() + Length() - 1; // Scans the string backwards until we found // the character, or we reach the string's start - while (end != start && *end != c) { + while (end >= start && *end != c) { end--; } - if (end == start) + if (end < start) return B_ERROR; - return end - String(); + return end - start; } @@ -1213,19 +1213,19 @@ BString::FindLast(char c, int32 beforeOffset) const if (beforeOffset < 0) return B_ERROR; - const char* start = String(); - const char* end = String() + min_clamp0(beforeOffset, Length()); + const char* const start = String(); + const char* end = String() + min_clamp0(beforeOffset + 1, Length()) - 1; // Scans the string backwards until we found // the character, or we reach the string's start - while (end > start && *end != c) { + while (end >= start && *end != c) { end--; } - if (end <= start) + if (end < start) return B_ERROR; - return end - String(); + return end - start; }