diff options
author | Johannes Schickel | 2010-08-16 16:01:31 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-08-16 16:01:31 +0000 |
commit | 7b51537be2341b62795c308c140faca387fa04e6 (patch) | |
tree | 76ad8edab7ba719037f47dc113f6fdbcadaca858 | |
parent | c284e78cc0bbb0e861162c4c4cc8c765ec60d5f1 (diff) | |
download | scummvm-rg350-7b51537be2341b62795c308c140faca387fa04e6.tar.gz scummvm-rg350-7b51537be2341b62795c308c140faca387fa04e6.tar.bz2 scummvm-rg350-7b51537be2341b62795c308c140faca387fa04e6.zip |
Common: Fix bug in lastPathComponent.
Prior to this change lastPathComponent would not create a correct result,
when the input of lastPathComponent did not contain a single separator.
I also added a test case for this in our unit tests.
svn-id: r52123
-rw-r--r-- | common/str.cpp | 2 | ||||
-rw-r--r-- | test/common/str.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/common/str.cpp b/common/str.cpp index 744ba46ec7..2a0130dbe4 100644 --- a/common/str.cpp +++ b/common/str.cpp @@ -626,7 +626,7 @@ Common::String lastPathComponent(const Common::String &path, const char sep) { // Now scan the whole component const char *first = last - 1; - while (first >= str && *first != sep) + while (first > str && *first != sep) --first; if (*first == sep) diff --git a/test/common/str.h b/test/common/str.h index 6581c37cdb..e1f2b39578 100644 --- a/test/common/str.h +++ b/test/common/str.h @@ -266,6 +266,8 @@ class StringTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS(Common::lastPathComponent("foo/./bar", '/'), "bar"); TS_ASSERT_EQUALS(Common::lastPathComponent("foo//./bar//", '/'), "bar"); TS_ASSERT_EQUALS(Common::lastPathComponent("foo//.bar//", '/'), ".bar"); + + TS_ASSERT_EQUALS(Common::lastPathComponent("foo", '/'), "foo"); } void test_normalizePath() { |