diff --git a/src/base/string.cpp b/src/base/string.cpp index 650171e2..5b9ac264 100644 --- a/src/base/string.cpp +++ b/src/base/string.cpp @@ -1,11 +1,13 @@ // -// Lol Engine +// Lol Engine // -// Copyright: (c) 2010-2014 Sam Hocevar -// This program is free software; you can redistribute it and/or -// modify it under the terms of the Do What The Fuck You Want To -// Public License, Version 2, as published by Sam Hocevar. See -// http://www.wtfpl.net/ for more details. +// Copyright © 2010—2015 Sam Hocevar +// +// This library is free software. It comes without any warranty, to +// the extent permitted by applicable law. You can redistribute it +// and/or modify it under the terms of the Do What the Fuck You Want +// to Public License, Version 2, as published by the WTFPL Task Force. +// See http://www.wtfpl.net/ for more details. // #include @@ -51,11 +53,11 @@ String String::VPrintf(char const *format, va_list ap) size_t needed = vsnprintf(nullptr, 0, format, ap2) + 1; #if defined va_copy || !defined _MSC_VER - /* do not call va_end() if va_copy() wasn’t called. */ + /* do not call va_end() if va_copy() wasn't called. */ va_end(ap2); #endif - ((Super &)ret).Reserve(needed); + ((super &)ret).reserve(needed); ret.m_count = needed; vsnprintf(&ret[0], needed, format, ap); diff --git a/src/lol/base/array.h b/src/lol/base/array.h index 83c909a0..fe98e905 100644 --- a/src/lol/base/array.h +++ b/src/lol/base/array.h @@ -54,7 +54,7 @@ public: m_count(0), m_reserved(0) { - Reserve(list.size()); + reserve(list.size()); for (auto elem : list) push(elem); } @@ -70,7 +70,7 @@ public: { /* Reserve the exact number of values instead of what the other * array had reserved. Just a method for not wasting too much. */ - Reserve(that.m_count); + reserve(that.m_count); for (ptrdiff_t i = 0; i < that.m_count; i++) new(&m_data[i]) element_t(that[i]); m_count = that.m_count; @@ -88,7 +88,7 @@ public: /* If not enough space, reserve memory, overwrite the first * elements, then use placement new directly for the * remaining elements. */ - Reserve(that.m_count); + reserve(that.m_count); for (ptrdiff_t i = 0; i < m_count && i < that.m_count; i++) m_data[i] = element_t(that[i]); for (ptrdiff_t i = m_count; i < that.m_count; i++) @@ -115,7 +115,7 @@ public: array_base& operator+=(array_base const &that) { ptrdiff_t todo = that.m_count; - Reserve(m_count + todo); + reserve(m_count + todo); for (ptrdiff_t i = 0; i < todo; i++) new(&m_data[m_count + i]) element_t(that[i]); m_count += todo; @@ -125,7 +125,7 @@ public: ARRAY operator+(ARRAY const &that) const { ARRAY ret; - ret.Reserve(m_count + that.m_count); + ret.reserve(m_count + that.m_count); ret += *this; ret += that; return ret; @@ -149,23 +149,23 @@ public: return m_data[n]; } - inline element_t& Last() + inline element_t& last() { ASSERT(m_count > 0); return m_data[m_count - 1]; } - inline element_t *Data() + inline element_t *data() { return m_data; } - inline element_t const *Data() const + inline element_t const *data() const { return m_data; } - inline element_t const& Last() const + inline element_t const& last() const { ASSERT(m_count > 0); return m_data[m_count - 1]; @@ -176,7 +176,7 @@ public: if (m_count >= m_reserved) { T tmp = x; - Grow(); + grow(); new (&m_data[m_count]) element_t(tmp); } else @@ -189,7 +189,7 @@ public: inline array_base& operator>>(T const &x) { - RemoveItem(x); + remove_item(x); return *this; } @@ -200,21 +200,21 @@ public: inline bool push_unique(T const &x) { - if (Find(x) != INDEX_NONE) + if (find(x) != INDEX_NONE) return false; push(x); return true; } - inline void Insert(T const &x, ptrdiff_t pos) + inline void insert(T const &x, ptrdiff_t pos) { ASSERT(pos >= 0 && pos <= m_count, "cannot insert at index %lld in array of size %lld", (long long int)pos, (long long int)m_count); if (m_count >= m_reserved) - Grow(); + grow(); for (ptrdiff_t i = m_count; i > pos; --i) { @@ -225,20 +225,20 @@ public: ++m_count; } - inline bool InsertUnique(T const &x, ptrdiff_t pos) + inline bool insert_unique(T const &x, ptrdiff_t pos) { ASSERT(pos >= 0 && pos <= m_count, "cannot insert at index %lld in array of size %lld", (long long int)pos, (long long int)m_count); - if (Find(x) != INDEX_NONE) + if (find(x) != INDEX_NONE) return false; - Insert(x, pos); + insert(x, pos); return true; } - inline ptrdiff_t Find(T const &x) + inline ptrdiff_t find(T const &x) { for (ptrdiff_t i = 0; i < m_count; ++i) if (m_data[i] == x) @@ -246,9 +246,9 @@ public: return INDEX_NONE; } - bool RemoveItem(T const &x) + bool remove_item(T const &x) { - ptrdiff_t idx = Find(x); + ptrdiff_t idx = find(x); if (idx != INDEX_NONE) { remove(idx); @@ -259,7 +259,7 @@ public: bool RemoveSwapItem(T const &x) { - ptrdiff_t idx = Find(x); + ptrdiff_t idx = find(x); if (idx != INDEX_NONE) { RemoveSwap(idx); @@ -270,8 +270,8 @@ public: bool SwapItem(T const &x1, T const &x2) { - ptrdiff_t idx1 = Find(x1); - ptrdiff_t idx2 = Find(x2); + ptrdiff_t idx1 = find(x1); + ptrdiff_t idx2 = find(x2); if (idx1 != INDEX_NONE && idx2 != INDEX_NONE) { swap(idx1, idx2); @@ -283,7 +283,7 @@ public: inline T pop() { ASSERT(m_count > 0); - element_t tmp = Last(); + element_t tmp = last(); remove(m_count - 1, 1); return tmp; } @@ -339,20 +339,20 @@ public: m_count -= todelete; } - void Resize(ptrdiff_t count, element_t e = element_t()) + void resize(ptrdiff_t item_count, element_t e = element_t()) { - ASSERT(count >= 0); - Reserve(count); + ASSERT(item_count >= 0); + reserve(item_count); /* Too many elements? Remove them. */ - for (ptrdiff_t i = count; i < m_count; ++i) + for (ptrdiff_t i = item_count; i < m_count; ++i) m_data[i].~element_t(); /* Not enough elements? Add some. */ - for (ptrdiff_t i = m_count; i < count; ++i) + for (ptrdiff_t i = m_count; i < item_count; ++i) new(&m_data[i]) element_t(e); - m_count = count; + m_count = item_count; } inline void empty() @@ -360,7 +360,7 @@ public: remove(0, m_count); } - void Reserve(ptrdiff_t toreserve) + void reserve(ptrdiff_t toreserve) { if (toreserve <= m_reserved) return; @@ -393,6 +393,18 @@ public: inline void Swap(ptrdiff_t pos1, ptrdiff_t pos2) { return swap(pos1, pos2); } inline void Remove(ptrdiff_t pos, ptrdiff_t todelete = 1) { return remove(pos, todelete); } inline void Empty() { empty(); } + inline element_t& Last() { return last(); } + inline element_t *Data() { return data(); } + inline element_t const *Data() const { return data(); } + inline element_t const& Last() const { return last(); } + inline void Insert(T const &x, ptrdiff_t pos) { return insert(x, pos); } + inline bool InsertUnique(T const &x, ptrdiff_t pos) { return insert_unique(x, pos); } + inline ptrdiff_t Find(T const &x) { return find(x); } + inline bool RemoveItem(T const &x) { return remove_item(x); } + inline void Resize(ptrdiff_t item_count, element_t e = element_t()) { return resize(item_count, e); } + inline void Reserve(ptrdiff_t toreserve) { return reserve(toreserve); } + inline ptrdiff_t Count() const { return count(); } + inline ptrdiff_t Bytes() const { return bytes(); } /* Support C++11 range-based for loops */ class ConstIterator @@ -454,13 +466,13 @@ public: }; public: - inline ptrdiff_t Count() const { return m_count; } - inline ptrdiff_t Bytes() const { return m_count * sizeof(element_t); } + inline ptrdiff_t count() const { return m_count; } + inline ptrdiff_t bytes() const { return m_count * sizeof(element_t); } protected: - void Grow() + void grow() { - Reserve(m_count * 13 / 8 + 8); + reserve(m_count * 13 / 8 + 8); } element_t *m_data; @@ -495,7 +507,7 @@ public: if (this->m_count >= this->m_reserved) { tuple tmp = { args... }; - this->Grow(); + this->grow(); new (&this->m_data[this->m_count].m1) tuple(tmp); } else @@ -512,7 +524,7 @@ public: (long long int)pos, (long long int)this->m_count); if (this->m_count >= this->m_reserved) - this->Grow(); + this->grow(); for (ptrdiff_t i = this->m_count; i > pos; --i) { @@ -561,7 +573,7 @@ typename array::Iterator begin(array &a) template typename array::Iterator end(array &a) { - return typename array::Iterator(&a, a.Count()); + return typename array::Iterator(&a, a.count()); } template @@ -573,7 +585,7 @@ typename array::ConstIterator begin(array const &a) template typename array::ConstIterator end(array const &a) { - return typename array::ConstIterator(&a, a.Count()); + return typename array::ConstIterator(&a, a.count()); } /* diff --git a/src/lol/base/string.h b/src/lol/base/string.h index 2b32eb36..25db1c61 100644 --- a/src/lol/base/string.h +++ b/src/lol/base/string.h @@ -1,11 +1,14 @@ // -// Lol Engine +// Lol Engine // -// Copyright: (c) 2010-2013 Sam Hocevar -// This program is free software; you can redistribute it and/or -// modify it under the terms of the Do What The Fuck You Want To -// Public License, Version 2, as published by Sam Hocevar. See -// http://www.wtfpl.net/ for more details. +// Copyright © 2010—2015 Sam Hocevar +// © 2013—2015 Benjamin "Touky" Huet +// +// This library is free software. It comes without any warranty, to +// the extent permitted by applicable law. You can redistribute it +// and/or modify it under the terms of the Do What the Fuck You Want +// to Public License, Version 2, as published by the WTFPL Task Force. +// See http://www.wtfpl.net/ for more details. // #pragma once @@ -28,70 +31,70 @@ namespace lol class String : protected array { private: - typedef array Super; + typedef array super; public: inline String() - : Super() + : super() { - Push('\0'); + push('\0'); } inline String(char const *str) - : Super() + : super() { using namespace std; ASSERT(str); - Resize(strlen(str)); - memcpy(&(*this)[0], str, Count() + 1); + resize(strlen(str)); + memcpy(&(*this)[0], str, count() + 1); } - inline String(char const *str, ptrdiff_t count) - : Super() + inline String(char const *str, ptrdiff_t item_count) + : super() { using namespace std; ASSERT(str); - Resize(count); - memcpy(&(*this)[0], str, count); - ((Super &)*this)[count] = '\0'; + resize(item_count); + memcpy(&(*this)[0], str, item_count); + ((super &)*this)[item_count] = '\0'; } inline String(String const &s) - : Super((Super const &)s) + : super((super const &)s) { } inline char &operator [](ptrdiff_t n) { - /* Allow n == Count() because we might have reasonable reasons + /* Allow n == count() because we might have reasonable reasons * to access that hidden null character. */ ASSERT(n >= 0); - ASSERT(n <= Count()); - return ((Super &)*this)[n]; + ASSERT(n <= count()); + return ((super &)*this)[n]; } inline char const &operator [](ptrdiff_t n) const { ASSERT(n >= 0); - ASSERT(n <= Count()); - return ((Super const &)*this)[n]; + ASSERT(n <= count()); + return ((super const &)*this)[n]; } - inline char &Last() + inline char &last() { - ASSERT(Count() > 0); - return (*this)[Count() - 1]; + ASSERT(count() > 0); + return (*this)[count() - 1]; } - inline char const &Last() const + inline char const &last() const { - ASSERT(Count() > 0); - return (*this)[Count() - 1]; + ASSERT(count() > 0); + return (*this)[count() - 1]; } - inline ptrdiff_t Count() const + inline ptrdiff_t count() const { - return ((Super const &)*this).Count() - 1; + return ((super const &)*this).count() - 1; } /* Return a C string */ @@ -107,24 +110,24 @@ public: } /* Does not initialise the newly allocated characters */ - void Resize(ptrdiff_t count) + void resize(ptrdiff_t item_count) { - ASSERT(count >= 0); - ((Super &)*this).Resize(count + 1); - ((Super &)*this).Last() = '\0'; + ASSERT(item_count >= 0); + ((super &)*this).resize(item_count + 1); + ((super &)*this).last() = '\0'; } - String Sub(ptrdiff_t start, ptrdiff_t count = -1) const + String sub(ptrdiff_t start, ptrdiff_t item_count = -1) const { ASSERT(start >= 0); - if (start >= Count()) + if (start >= count()) return String(); - if (count < 0 || count >= Count() - start) - count = Count() - start; - return String(&(*this)[start], count); + if (item_count < 0 || item_count >= count() - start) + item_count = count() - start; + return String(&(*this)[start], item_count); } - ptrdiff_t IndexOf(char token) const + ptrdiff_t index_of(char token) const { using namespace std; @@ -132,7 +135,7 @@ public: return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE; } - ptrdiff_t IndexOf(char const* token) const + ptrdiff_t index_of(char const* token) const { using namespace std; @@ -140,12 +143,12 @@ public: return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE; } - bool Contains(String const &s) const + bool contains(String const &s) const { - return IndexOf(s.C()) != INDEX_NONE; + return index_of(s.C()) != INDEX_NONE; } - ptrdiff_t LastIndexOf(char token) const + ptrdiff_t last_index_of(char token) const { using namespace std; @@ -153,7 +156,7 @@ public: return tmp ? (ptrdiff_t)(tmp - C()) : INDEX_NONE; } - int Replace(char const old_token, char const new_token, + int replace(char const old_token, char const new_token, bool all_occurrences = false) { using namespace std; @@ -170,50 +173,51 @@ public: return res; } - inline String& ToLower() + /* FIXME: it doesn't sound safe to apply this in place */ + inline String& to_lower() { char* p = C(); - for (ptrdiff_t i = 0; i < Count(); ++i) + for (ptrdiff_t i = 0; i < count(); ++i) if ('A' <= p[i] && p[i] <= 'Z') p[i] += 'a' - 'A'; return *this; } - inline String& ToUpper() + inline String& to_upper() { char* p = C(); - for (ptrdiff_t i = 0; i < Count(); ++i) + for (ptrdiff_t i = 0; i < count(); ++i) if ('a' <= p[i] && p[i] <= 'z') p[i] += 'A' - 'a'; return *this; } - ptrdiff_t LastIndexOf(char const* token) const + ptrdiff_t last_index_of(char const* token) const { using namespace std; ptrdiff_t token_len = strlen(token); - for (ptrdiff_t i = Count() - token_len; i >= 0; --i) + for (ptrdiff_t i = count() - token_len; i >= 0; --i) if (strstr(C() + i, token)) return i; return -1; } - bool StartsWith(String const &s) const + bool starts_with(String const &s) const { using namespace std; - return Count() >= s.Count() - && memcmp(C(), s.C(), s.Count()) == 0; + return count() >= s.count() + && memcmp(C(), s.C(), s.count()) == 0; } - bool EndsWith(String const &s) const + bool ends_with(String const &s) const { using namespace std; - return Count() >= s.Count() - && memcmp(C() + Count() - s.Count(), s.C(), s.Count()) == 0; + return count() >= s.count() + && memcmp(C() + count() - s.count(), s.C(), s.count()) == 0; } - bool IsAlpha() + bool is_alpha() const { for (ptrdiff_t i = 0; i < m_count; i++) if (m_data[i] != '\0' && (m_data[i] < '0' || '9' < m_data[i])) @@ -230,9 +234,9 @@ public: inline String& operator +=(String const &s) { using namespace std; - ptrdiff_t old_count = Count(); - Resize(Count() + s.Count()); - memcpy(&(*this)[old_count], &s[0], Count() - old_count); + ptrdiff_t old_count = count(); + resize(count() + s.count()); + memcpy(&(*this)[old_count], &s[0], count() - old_count); return *this; } @@ -244,16 +248,16 @@ public: inline String& operator +=(char c) { - ((Super &)*this).Last() = c; - ((Super &)*this).Push('\0'); + ((super &)*this).last() = c; + ((super &)*this).push('\0'); return *this; } inline bool operator ==(String const &s) const { using namespace std; - return Count() == s.Count() - && memcmp(C(), s.C(), Count()) == 0; + return count() == s.count() + && memcmp(C(), s.C(), count()) == 0; } inline bool operator !=(String const &s) const @@ -267,7 +271,7 @@ public: * but it's probably still faster than doing it by hand. */ using namespace std; ptrdiff_t sz_len = strlen(sz); - return Count() == sz_len + return count() == sz_len && memcmp(C(), sz, sz_len) == 0; } @@ -279,10 +283,10 @@ public: inline bool operator <(String const & s) const { using namespace std; - int res = memcmp(C(), s.C(), Count() < s.Count() ? Count() : s.Count()); + int res = memcmp(C(), s.C(), count() < s.count() ? count() : s.count()); if (!res) - return Count() < s.Count(); + return count() < s.count(); return res < 0; } @@ -295,6 +299,23 @@ public: static String Printf(char const *format, ...) LOL_FMT_ATTR(1, 2); #undef LOL_FMT_ATTR static String VPrintf(char const *format, va_list ap); + + /* TODO: remove these legacy functions one day */ + inline char &Last() { return last(); } + inline char const &Last() const { return last(); } + inline void Resize(ptrdiff_t item_count) { return resize(item_count); } + inline String& ToLower() { return to_lower(); } + inline String& ToUpper() { return to_upper(); } + inline String Sub(ptrdiff_t start, ptrdiff_t item_count = -1) const { return sub(start, item_count); } + inline bool Contains(String const &s) const { return contains(s); } + inline ptrdiff_t IndexOf(char token) const { return index_of(token); } + inline ptrdiff_t IndexOf(char const* token) const { return index_of(token); } + inline ptrdiff_t LastIndexOf(char token) const { return last_index_of(token); } + inline int Replace(char const old_token, char const new_token, bool all_occurrences = false) { return replace(old_token, new_token, all_occurrences); } + inline bool EndsWith(String const &s) const { return ends_with(s); } + inline bool IsAlpha() const { return is_alpha(); } + inline bool StartsWith(String const &s) const { return starts_with(s); } + inline ptrdiff_t Count() const { return count(); } }; inline bool operator ==(char const* sz, String const &s) diff --git a/src/t/base/string.cpp b/src/t/base/string.cpp index 4450c792..26cd0cb2 100644 --- a/src/t/base/string.cpp +++ b/src/t/base/string.cpp @@ -1,11 +1,14 @@ // -// Lol Engine +// Lol Engine // -// Copyright: (c) 2010-2014 Sam Hocevar -// This program is free software; you can redistribute it and/or -// modify it under the terms of the Do What The Fuck You Want To -// Public License, Version 2, as published by Sam Hocevar. See -// http://www.wtfpl.net/ for more details. +// Copyright © 2010—2015 Sam Hocevar +// © 2014—2015 Benjamin "Touky" Huet +// +// This program is free software. It comes without any warranty, to +// the extent permitted by applicable law. You can redistribute it +// and/or modify it under the terms of the Do What the Fuck You Want +// to Public License, Version 2, as published by the WTFPL Task Force. +// See http://www.wtfpl.net/ for more details. // #include @@ -15,34 +18,34 @@ namespace lol { -lolunit_declare_fixture(StringTest) +lolunit_declare_fixture(string_test) { void SetUp() {} void TearDown() {} - lolunit_declare_test(StringBuild) + lolunit_declare_test(string_build) { String s1; - lolunit_assert_equal(s1.Count(), 0); + lolunit_assert_equal(s1.count(), 0); lolunit_assert_equal(s1[0], '\0'); String s2(""); - lolunit_assert_equal(s2.Count(), 0); + lolunit_assert_equal(s2.count(), 0); lolunit_assert_equal(s2[0], '\0'); String s3("a"); - lolunit_assert_equal(s3.Count(), 1); + lolunit_assert_equal(s3.count(), 1); lolunit_assert_equal(s3[0], 'a'); lolunit_assert_equal(s3[1], '\0'); String s4(s3); - lolunit_assert_equal(s4.Count(), 1); + lolunit_assert_equal(s4.count(), 1); lolunit_assert_equal(s4[0], 'a'); lolunit_assert_equal(s4[1], '\0'); } - lolunit_declare_test(StringAppendChar) + lolunit_declare_test(string_append_char) { String s; s += 'a'; @@ -55,7 +58,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert_equal(s[3], '\0'); } - lolunit_declare_test(StringCopy) + lolunit_declare_test(string_copy) { String s1 = "abc"; @@ -67,7 +70,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert_equal(s1[3], s2[3]); } - lolunit_declare_test(StringConcat) + lolunit_declare_test(string_concat) { String s1("ab"), s2("cd"); @@ -79,12 +82,12 @@ lolunit_declare_fixture(StringTest) lolunit_assert_equal(s3[4], '\0'); } - lolunit_declare_test(StringAppendString) + lolunit_declare_test(string_append_string) { String s1("ab"), s2("cd"); s1 += s2; - lolunit_assert_equal(s1.Count(), 4); + lolunit_assert_equal(s1.count(), 4); lolunit_assert_equal(s1[0], 'a'); lolunit_assert_equal(s1[1], 'b'); lolunit_assert_equal(s1[2], 'c'); @@ -92,7 +95,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert_equal(s1[4], '\0'); s2 += s2; - lolunit_assert_equal(s2.Count(), 4); + lolunit_assert_equal(s2.count(), 4); lolunit_assert_equal(s2[0], 'c'); lolunit_assert_equal(s2[1], 'd'); lolunit_assert_equal(s2[2], 'c'); @@ -100,7 +103,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert_equal(s2[4], '\0'); } - lolunit_declare_test(StringEqual) + lolunit_declare_test(string_equal) { String s1("abc"); String s2("abc"); @@ -110,7 +113,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert(!(s1 == s3)); } - lolunit_declare_test(StringDifferent) + lolunit_declare_test(string_different) { String s1("abc"); String s2("ab"); @@ -120,7 +123,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert(!(s1 != s3)); } - lolunit_declare_test(StringCharsEqual) + lolunit_declare_test(string_chars_equal) { char const* sz = "abc"; String s1("abc"); @@ -132,7 +135,7 @@ lolunit_declare_fixture(StringTest) lolunit_assert(!(sz == s2)); } - lolunit_declare_test(StringCharsDifferent) + lolunit_declare_test(string_chars_different) { char const* sz = "abc"; String s1("ab"); @@ -145,7 +148,7 @@ lolunit_declare_fixture(StringTest) } - lolunit_declare_test(StringPrintf) + lolunit_declare_test(string_printf) { String s1 = "3a"; String s2 = String::Printf("%d%x", 3, 10); @@ -158,30 +161,30 @@ lolunit_declare_fixture(StringTest) lolunit_assert(s3 == s4); } - lolunit_declare_test(SubString) + lolunit_declare_test(substring) { String s1 = "Hello World"; - String s2 = s1.Sub(0, 5); + String s2 = s1.sub(0, 5); String s3 = "Hello"; lolunit_assert(s2 == s3); - String s4 = s1.Sub(6, 5); + String s4 = s1.sub(6, 5); String s5 = "World"; lolunit_assert(s4 == s5); } - lolunit_declare_test(IndexOf) + lolunit_declare_test(index_of) { String s1 = "Hello World"; - ptrdiff_t i1 = s1.IndexOf('H'); - ptrdiff_t i2 = s1.IndexOf('W'); - ptrdiff_t i3 = s1.IndexOf('d'); - ptrdiff_t i4 = s1.IndexOf("Hello"); - ptrdiff_t i5 = s1.IndexOf("World"); - ptrdiff_t i6 = s1.IndexOf("lo"); - ptrdiff_t i7 = s1.IndexOf("Hello World"); - ptrdiff_t i8 = s1.IndexOf("Sup' dude"); + ptrdiff_t i1 = s1.index_of('H'); + ptrdiff_t i2 = s1.index_of('W'); + ptrdiff_t i3 = s1.index_of('d'); + ptrdiff_t i4 = s1.index_of("Hello"); + ptrdiff_t i5 = s1.index_of("World"); + ptrdiff_t i6 = s1.index_of("lo"); + ptrdiff_t i7 = s1.index_of("Hello World"); + ptrdiff_t i8 = s1.index_of("Sup' dude"); lolunit_assert(i1 == 0); lolunit_assert(i2 == 6); @@ -193,18 +196,18 @@ lolunit_declare_fixture(StringTest) lolunit_assert(i8 == -1); } - lolunit_declare_test(LastIndexOf) + lolunit_declare_test(last_index_of) { String s1 = "Hello World"; - ptrdiff_t i1 = s1.LastIndexOf('H'); - ptrdiff_t i2 = s1.LastIndexOf('W'); - ptrdiff_t i3 = s1.LastIndexOf('d'); - ptrdiff_t i4 = s1.LastIndexOf("Hello"); - ptrdiff_t i5 = s1.LastIndexOf("World"); - ptrdiff_t i6 = s1.LastIndexOf("lo"); - ptrdiff_t i7 = s1.LastIndexOf("Hello World"); - ptrdiff_t i8 = s1.LastIndexOf("Sup' dude"); - ptrdiff_t i9 = s1.LastIndexOf('l'); + ptrdiff_t i1 = s1.last_index_of('H'); + ptrdiff_t i2 = s1.last_index_of('W'); + ptrdiff_t i3 = s1.last_index_of('d'); + ptrdiff_t i4 = s1.last_index_of("Hello"); + ptrdiff_t i5 = s1.last_index_of("World"); + ptrdiff_t i6 = s1.last_index_of("lo"); + ptrdiff_t i7 = s1.last_index_of("Hello World"); + ptrdiff_t i8 = s1.last_index_of("Sup' dude"); + ptrdiff_t i9 = s1.last_index_of('l'); lolunit_assert(i1 == 0); lolunit_assert(i2 == 6); @@ -217,18 +220,18 @@ lolunit_declare_fixture(StringTest) lolunit_assert(i9 == 9); } - lolunit_declare_test(StartsEndsWith) + lolunit_declare_test(starts_ends_with) { String s = "lolilol"; - lolunit_assert(s.StartsWith("loli")); - lolunit_assert(!s.StartsWith("lolo")); - lolunit_assert(!s.StartsWith("lolilolilol")); - lolunit_assert(s.EndsWith("ilol")); - lolunit_assert(!s.EndsWith("olol")); - lolunit_assert(!s.EndsWith("lolilolilol")); + lolunit_assert(s.starts_with("loli")); + lolunit_assert(!s.starts_with("lolo")); + lolunit_assert(!s.starts_with("lolilolilol")); + lolunit_assert(s.ends_with("ilol")); + lolunit_assert(!s.ends_with("olol")); + lolunit_assert(!s.ends_with("lolilolilol")); } - lolunit_declare_test(StringCompare) + lolunit_declare_test(string_compare) { String s1 = "lolilol"; String s2 = s1; diff --git a/src/text.cpp b/src/text.cpp index 3931671b..379dccbd 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -1,11 +1,13 @@ // -// Lol Engine +// Lol Engine // -// Copyright: (c) 2010-2013 Sam Hocevar -// This program is free software; you can redistribute it and/or -// modify it under the terms of the Do What The Fuck You Want To -// Public License, Version 2, as published by Sam Hocevar. See -// http://www.wtfpl.net/ for more details. +// Copyright © 2010—2015 Sam Hocevar +// +// This library is free software. It comes without any warranty, to +// the extent permitted by applicable law. You can redistribute it +// and/or modify it under the terms of the Do What the Fuck You Want +// to Public License, Version 2, as published by the WTFPL Task Force. +// See http://www.wtfpl.net/ for more details. // #include @@ -80,7 +82,7 @@ void Text::TickDraw(float seconds, Scene &scene) { Entity::TickDraw(seconds, scene); - int length = data->m_text.Count(); + int length = data->m_text.count(); if (length) { Font *font = Forge::GetFont(data->font); diff --git a/src/utils.h b/src/utils.h index 0974dfd7..28944aa9 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1,12 +1,14 @@ // -// Lol Engine +// Lol Engine // -// Copyright: (c) 2012-2013 Benjamin "Touky" Huet -// (c) 2012-2013 Sam Hocevar -// This program is free software; you can redistribute it and/or -// modify it under the terms of the Do What The Fuck You Want To -// Public License, Version 2, as published by Sam Hocevar. See -// http://www.wtfpl.net/ for more details. +// Copyright © 2010—2015 Sam Hocevar +// © 2012—2015 Benjamin "Touky" Huet +// +// This library is free software. It comes without any warranty, to +// the extent permitted by applicable law. You can redistribute it +// and/or modify it under the terms of the Do What the Fuck You Want +// to Public License, Version 2, as published by the WTFPL Task Force. +// See http://www.wtfpl.net/ for more details. // #pragma once @@ -62,10 +64,10 @@ template< class T > inline int GetRandom(array src) template inline T FindValue(const char* name) { String n = name; - n.ToLower(); + n.to_lower(); for (int i = 0; i < T::Max; ++i) { - String s = T(i).ToString().ToLower(); + String s = T(i).ToString().to_lower(); if (s == n) return T(i); }