Squashed 'deps/nostalgia/' changes from e78c4050..857587c1

857587c1 [studio] Cleanup
eb3d53c9 [studio] Cleanup
14d58f3f [studio] Fix Navigation shortcuts for non-Mac systems
5f239790 [studio,nostalgia/gfx/studio/tilesheet] Fix copy/cut/paste enablement when there is no selection
58e0ecb4 [studio] Make FilePickerPopup accept on double click of a file
8838bf42 [studio] Fix to properly copy file that has the same name as deleted file
bddc544d [nostalgia] Update release notes
a9437191 [studio,turbine] Add support for mouse back/forward buttons
9d8da7cc [ox/std] Make strToInt return error for empty string
394b568e [studio] Add Back/Forward navigation
78e9f70d [nostalgia] Update release notes
12e5623f [ox/logconn] Add exception handling for logger thread
cfdfb0a8 [studio] Fix file deletion to close file even if not active
56e66530 [studio] Cleanup
7415ce4b [nostalgia/gfx/studio] Cleanup
05f42150 [olympic] Add new loc command to Makefile
8ea2bc69 [nostalgia] Update release notes
c7809241 [studio] Add [DEBUG] tag to About in debug builds
8c538560 [nostalgia/gfx/studio/palette] Make RGB key shortcuts work when color channel inputs are focused
c3e75bdb [nostalgia/gfx/studio/tilesheet] Cleanup

git-subtree-dir: deps/nostalgia
git-subtree-split: 857587c18b4695eacd31457e3c30b4971b4e46e8
This commit is contained in:
2025-06-21 08:48:13 -05:00
parent 7688c05bac
commit 7371df4295
38 changed files with 528 additions and 216 deletions

View File

@ -91,23 +91,28 @@ ox::Error LoggerConn::sendInit(const InitTraceMsg &msg) noexcept {
}
void LoggerConn::msgSend() noexcept {
while (true) {
std::unique_lock lk(m_waitMut);
m_waitCond.wait(lk);
if (!m_running) {
break;
}
std::lock_guard const buffLk(m_buffMut);
try {
while (true) {
Array<char, units::KB> tmp;
const auto read = m_buff.read(tmp.data(), tmp.size());
if (!read) {
std::unique_lock lk(m_waitMut);
m_waitCond.wait(lk);
if (!m_running) {
break;
}
oxAssert(read <= tmp.size(), "logger trying to read too much data");
//std::printf("LoggerConn: sending %lu bytes\n", read);
std::ignore = send(tmp.data(), read);
std::lock_guard const buffLk(m_buffMut);
while (true) {
Array<char, units::KB> tmp;
const auto read = m_buff.read(tmp.data(), tmp.size());
if (!read) {
break;
}
oxAssert(read <= tmp.size(), "logger trying to read too much data");
//std::printf("LoggerConn: sending %lu bytes\n", read);
std::ignore = send(tmp.data(), read);
}
}
} catch (std::exception const &e) {
oxErrf("Exception in logger thread: {}\n", e.what());
oxAssert(false, "logger thread exception");
}
}

View File

@ -104,13 +104,16 @@ constexpr ox::Result<int> strToInt(StringViewCR str) noexcept {
OX_ALLOW_UNSAFE_BUFFERS_BEGIN
int total = 0;
int multiplier = 1;
if (str.len() == 0) [[unlikely]] {
return Error{1, "Empty string passed to strToInt"};
}
for (auto i = static_cast<int64_t>(str.len()) - 1; i != -1; --i) {
auto s = static_cast<std::size_t>(i);
if (str[s] >= '0' && str[s] <= '9') {
total += (str[s] - '0') * multiplier;
multiplier *= 10;
} else {
return ox::Error(1);
return ox::Error{1};
}
}
return total;