Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core
diff options
context:
space:
mode:
authorWasabiRaptor <ketchupraptor@gmail.com>2025-05-25 13:24:44 -0400
committerWasabiRaptor <ketchupraptor@gmail.com>2025-05-25 13:24:44 -0400
commit59854f015602b791b51c20a008e78aaed68d20b9 (patch)
tree7b2f17dc60ad192fddec182f982f6feb5781eddd /source/core
parent96b86c63fd168df1a8463f184932d1b39c4284ec (diff)
parent1eac38c5526f6d4deee811e9995ed5579cdda46c (diff)
Merge branch 'main' into networked-animator-improvements
Diffstat (limited to 'source/core')
-rw-r--r--source/core/StarLua.cpp2
-rw-r--r--source/core/StarStringView.cpp17
2 files changed, 12 insertions, 7 deletions
diff --git a/source/core/StarLua.cpp b/source/core/StarLua.cpp
index 201f238..b70fe59 100644
--- a/source/core/StarLua.cpp
+++ b/source/core/StarLua.cpp
@@ -319,7 +319,7 @@ LuaEnginePtr LuaEngine::create(bool safe) {
luaL_requiref(self->m_state, "os", luaopen_os, true);
if (safe) {
- StringSet osWhitelist = {"clock", "difftime", "time"};
+ StringSet osWhitelist = {"clock", "difftime", "time", "date"};
lua_pushnil(self->m_state);
while (lua_next(self->m_state, -2) != 0) {
diff --git a/source/core/StarStringView.cpp b/source/core/StarStringView.cpp
index 2bc9cd5..535d350 100644
--- a/source/core/StarStringView.cpp
+++ b/source/core/StarStringView.cpp
@@ -113,8 +113,11 @@ bool StringView::beginsWith(StringView beg, CaseSensitivity cs) const {
auto it = begin();
auto itEnd = end();
for (size_t i = 0; i != begSize; ++i)
- if (it++ == itEnd)
+ {
+ if (it == itEnd)
return false;
+ it++;
+ }
return compare(0, begSize, beg, 0, NPos, cs) == 0;
}
@@ -352,18 +355,20 @@ StringView StringView::substr(size_t position, size_t n) const {
auto it = begin();
for (size_t i = 0; i != position; ++i) {
- if (it++ == itEnd)
+ if (it == itEnd)
throw OutOfRangeException(strf("out of range in StringView::substr({}, {})", position, n));
+ it++;
}
- const char* start = &*it.base();
+ const auto itStart = it;
for (size_t i = 0; i != n; ++i) {
- if (it++ == itEnd)
- return StringView(start, &*it.base() - start - 1);
+ if (it == itEnd)
+ break;
+ ++it;
}
- return StringView(start, &*it.base() - start);
+ return StringView(&*itStart.base(), it.base() - itStart.base());
}
int StringView::compare(size_t selfOffset, size_t selfLen, StringView other,