aboutsummaryrefslogtreecommitdiff
path: root/libs/bsapacker
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-14 15:40:33 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-14 15:40:33 -0600
commit6410929e17d642618f284d5c97d457f1ac653e6e (patch)
tree5c0ee09e04f38a2dd70f1734d25c74e0b8ae5d43 /libs/bsapacker
parent817e8f5cd26739c69d930d21cd9dc4c0b6e4984e (diff)
Migrate data paths to ~/.local/share/fluorine/, add native build, fix %command% and system Proton scanning
- All data paths migrated from ~/.var/app/com.fluorine.manager/ to ~/.local/share/fluorine/ so native and Flatpak builds share the same instances, plugins, and configs - New fluorinepaths.h/.cpp with fluorineDataDir() helper and one-time migration from old path (writes MOVED.txt breadcrumb) - New libs/nak/src/paths.rs as Rust equivalent (data_dir()) - Strip %command% tokens from launch wrapper in protonlauncher.cpp - Always scan /usr/share/steam/compatibilitytools.d/ for system Proton packages (Arch installs Proton there); add Flatpak filesystem permission - Native build (build-native.sh) installs to ~/.local/share/fluorine/ with desktop entry and ~/.local/bin symlink instead of portable zip - build-flatpak.sh wrapper for Flatpak builds - Fix container locale (LANG=C.UTF-8) for AutoUic warnings - Fix prefixExists() to handle both compatdata and pfx directory layouts - Fix globalInstancesRootPath() to use fluorineDataDir() on Linux - Fix umu-run Flatpak lookup to use fluorineDataDir() - Update README with build instructions and Arch dependency list Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/bsapacker')
-rw-r--r--libs/bsapacker/src/qlibbsarch/QLibbsarch.h12
1 files changed, 5 insertions, 7 deletions
diff --git a/libs/bsapacker/src/qlibbsarch/QLibbsarch.h b/libs/bsapacker/src/qlibbsarch/QLibbsarch.h
index 7af53f4..9e37e05 100644
--- a/libs/bsapacker/src/qlibbsarch/QLibbsarch.h
+++ b/libs/bsapacker/src/qlibbsarch/QLibbsarch.h
@@ -3,6 +3,7 @@
#include <libbsarch/libbsarch.h>
#include <string>
#include <stdexcept>
+#include <cstring>
#include <QDebug>
#include <QDir>
#include <QStringList>
@@ -23,7 +24,9 @@ namespace QLibBsarch
{
if (result.code == BSA_RESULT_EXCEPTION)
{
- const std::string &error = QLibBsarch::wcharToString(result.text);
+ wchar_t aligned_text[1024];
+ std::memcpy(aligned_text, result.text, sizeof(aligned_text));
+ const std::string error = QLibBsarch::wcharToString(aligned_text);
LOG_LIBBSARCH << QString::fromStdString(error);
throw std::runtime_error(error);
}
@@ -31,12 +34,7 @@ namespace QLibBsarch
inline void checkResult(const bsa_result_message_buffer_s &result)
{
- if (result.message.code == BSA_RESULT_EXCEPTION)
- {
- const std::string &error = QLibBsarch::wcharToString(result.message.text);
- LOG_LIBBSARCH << QString::fromStdString(error);
- throw std::runtime_error(error);
- }
+ checkResult(result.message);
}
} // namespace QLibBsarch