diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2013-08-27 19:05:36 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2013-08-27 19:05:36 -0700 |
commit | 61dc59e612df9c6d2b3a3f4f27f1cb88b6fca98b (patch) | |
tree | 875a8e14d67011434cbd4ceb5bf435971d94e0d4 | |
parent | e8880ef4d8c00de91f72e7aa2d75b05abdecdafb (diff) | |
download | tmwa-61dc59e612df9c6d2b3a3f4f27f1cb88b6fca98b.tar.gz tmwa-61dc59e612df9c6d2b3a3f4f27f1cb88b6fca98b.tar.bz2 tmwa-61dc59e612df9c6d2b3a3f4f27f1cb88b6fca98b.tar.xz tmwa-61dc59e612df9c6d2b3a3f4f27f1cb88b6fca98b.zip |
Handle far extensions in the mapname extractor
This has no effect with the current content, but will make
things much more convenient once we start using longer mapnames.
-rw-r--r-- | src/common/extract.hpp | 2 | ||||
-rw-r--r-- | src/common/extract_test.cpp | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/common/extract.hpp b/src/common/extract.hpp index 3c24693..c7bdbcb 100644 --- a/src/common/extract.hpp +++ b/src/common/extract.hpp @@ -198,6 +198,8 @@ bool extract(XString str, struct item *it); inline bool extract(XString str, MapName *m) { + XString::iterator it = std::find(str.begin(), str.end(), '.'); + str = str.xislice_h(it); VString<15> tmp; bool rv = extract(str, &tmp); *m = tmp; diff --git a/src/common/extract_test.cpp b/src/common/extract_test.cpp index d8e9ebe..78478c2 100644 --- a/src/common/extract_test.cpp +++ b/src/common/extract_test.cpp @@ -317,3 +317,16 @@ TEST(extract, record_str) EXPECT_EQ("", z); x = y = z = ""; } + +TEST(extract, mapname) +{ + MapName map; + EXPECT_TRUE(extract("abc", &map)); + EXPECT_EQ(map, "abc"); + EXPECT_TRUE(extract("abc.gat", &map)); + EXPECT_EQ(map, "abc"); + EXPECT_TRUE(extract("abcdefghijklmno", &map)); + EXPECT_EQ(map, "abcdefghijklmno"); + EXPECT_TRUE(extract("abcdefghijklmno.gat", &map)); + EXPECT_EQ(map, "abcdefghijklmno"); +} |