From 555bd6dce82143394b93380b42212df99d201495 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 4 Nov 2023 16:49:22 +0100 Subject: b --- compat/fix-argv0.cpp | 22 ++++++++++++++++++++++ compat/fix-argv0.hpp | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 compat/fix-argv0.cpp create mode 100644 compat/fix-argv0.hpp (limited to 'compat') diff --git a/compat/fix-argv0.cpp b/compat/fix-argv0.cpp new file mode 100644 index 00000000..8248f58d --- /dev/null +++ b/compat/fix-argv0.cpp @@ -0,0 +1,22 @@ +#include "fix-argv0.hpp" +#include + +namespace floormat { + +char* fix_argv0(char* argv0) noexcept +{ +#ifdef _WIN32 + if (auto* c = std::strrchr(argv0, '\\'); c && c[1]) + { + if (auto* s = std::strrchr(c, '.'); s && !std::strcmp(".exe", s)) + *s = '\0'; + return c+1; + } +#else + if (auto* c = std::strrchr(argv0, '/'); c && c[1]) + return c+1; +#endif + return argv0; +} + +} // namespace floormat diff --git a/compat/fix-argv0.hpp b/compat/fix-argv0.hpp new file mode 100644 index 00000000..dcd989aa --- /dev/null +++ b/compat/fix-argv0.hpp @@ -0,0 +1,3 @@ +#pragma once + +namespace floormat { char* fix_argv0(char* argv0) noexcept; } -- cgit v1.2.3