diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 02:37:39 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 02:37:39 -0600 |
| commit | 7ee008e150bc5bcf76082d726f719ee0fdfda982 (patch) | |
| tree | 27fb39be241fdb5ac2734c574de678977d1856d0 /libs/usvfs/src/shared/loghelpers.cpp | |
Fluorine Manager: full Linux port of Mod Organizer 2
Complete native Linux port with FUSE-based virtual filesystem,
Proton/umu-run integration, and Flatpak packaging.
Key features:
- FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak)
- Proton/GE-Proton/umu-run launcher with env var forwarding
- Flatpak support (sandbox-aware VFS, NXM handler, umu-run)
- Wine prefix management UI
- Case-insensitive path resolution for Linux filesystems
- QSettings-safe INI handling (avoids Bethesda INI corruption)
- Portable instance support with auto-generated launcher scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/usvfs/src/shared/loghelpers.cpp')
| -rw-r--r-- | libs/usvfs/src/shared/loghelpers.cpp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/libs/usvfs/src/shared/loghelpers.cpp b/libs/usvfs/src/shared/loghelpers.cpp new file mode 100644 index 0000000..bfcabf1 --- /dev/null +++ b/libs/usvfs/src/shared/loghelpers.cpp @@ -0,0 +1,96 @@ +/* +Userspace Virtual Filesystem + +Copyright (C) 2015 Sebastian Herbord. All rights reserved. + +This file is part of usvfs. + +usvfs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +usvfs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with usvfs. If not, see <http://www.gnu.org/licenses/>. +*/ +#include <format> + +#include "formatters.h" +#include "loghelpers.h" +#include "stringcast.h" +#include "stringutils.h" + +namespace ush = usvfs::shared; + +namespace usvfs::log +{ + +// this is declared in formatters but is defined here to avoid a whole .cpp +// file for two small functions +// +// comments from old code, taken as is: +// +// TODO this does not correctly support surrogate pairs since the size used here +// is the number of 16-bit characters in the buffer whereas toNarrow expects the +// actual number of characters. It will always underestimate though, so worst +// case scenario we truncate the string +// +std::string to_string(LPCWSTR value) +{ + if (value == nullptr) { + return "<null>"; + } + try { + return ush::string_cast<std::string>(value, ush::CodePage::UTF8); + } catch (const std::exception& e) { + return std::format("<err: {}>", e.what()); + } +} +std::string to_string(PCUNICODE_STRING value) +{ + try { + return ush::string_cast<std::string>(value->Buffer, ush::CodePage::UTF8, + value->Length / sizeof(WCHAR)); + } catch (const std::exception& e) { + return std::format("<err: {}>", e.what()); + } +} + +spdlog::level::level_enum ConvertLogLevel(LogLevel level) +{ + switch (level) { + case LogLevel::Debug: + return spdlog::level::debug; + case LogLevel::Info: + return spdlog::level::info; + case LogLevel::Warning: + return spdlog::level::warn; + case LogLevel::Error: + return spdlog::level::err; + default: + return spdlog::level::debug; + } +} + +LogLevel ConvertLogLevel(spdlog::level::level_enum level) +{ + switch (level) { + case spdlog::level::debug: + return LogLevel::Debug; + case spdlog::level::info: + return LogLevel::Info; + case spdlog::level::warn: + return LogLevel::Warning; + case spdlog::level::err: + return LogLevel::Error; + default: + return LogLevel::Debug; + } +} + +} // namespace usvfs::log |
