diff options
| author | Liam Mitchell <[email protected]> | 2025-03-25 17:30:46 -0700 |
|---|---|---|
| committer | Liam Mitchell <[email protected]> | 2025-03-25 17:40:03 -0700 |
| commit | 5f7a202aeb559aec9e98ed662229452bd2813e0a (patch) | |
| tree | 8ae4fdc074c614308fd8a2cd71b7159fdae3b766 /src | |
| parent | Merge remote-tracking branch 'origin/main' into de/zen-service-command (diff) | |
| download | zen-5f7a202aeb559aec9e98ed662229452bd2813e0a.tar.xz zen-5f7a202aeb559aec9e98ed662229452bd2813e0a.zip | |
Fix command line parsing when running service commands elevated
Diffstat (limited to 'src')
| -rw-r--r-- | src/zen/cmds/service_cmd.cpp | 4 | ||||
| -rw-r--r-- | src/zen/xmake.lua | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/zen/cmds/service_cmd.cpp b/src/zen/cmds/service_cmd.cpp index 386046e66..9eca10fc7 100644 --- a/src/zen/cmds/service_cmd.cpp +++ b/src/zen/cmds/service_cmd.cpp @@ -11,6 +11,7 @@ #if ZEN_PLATFORM_WINDOWS # include <zencore/windows.h> # include <shellapi.h> +# include <Shlwapi.h> #endif #if ZEN_PLATFORM_LINUX || ZEN_PLATFORM_MAC @@ -58,8 +59,7 @@ namespace { ExtendableWideStringBuilder<256> Parameters; std::filesystem::path ExecutablePath = GetRunningExecutablePath(); std::wstring CommandLine(GetCommandLine()); - std::string::size_type ExtraLength = CommandLine[0] == '\"' ? 2 : 0; - std::wstring CommandArguments = CommandLine.substr(ExecutablePath.string().length() + ExtraLength + 1); + std::wstring CommandArguments(PathGetArgs(CommandLine.data())); ZEN_CONSOLE("Attempting to run '{} {}' elevated...", ExecutablePath, WideToUtf8(CommandArguments)); diff --git a/src/zen/xmake.lua b/src/zen/xmake.lua index 78b2a3c2b..a755df374 100644 --- a/src/zen/xmake.lua +++ b/src/zen/xmake.lua @@ -17,7 +17,7 @@ target("zen") add_files("zen.rc") add_ldflags("/subsystem:console,5.02") add_ldflags("/LTCG") - add_links("crypt32", "wldap32", "Ws2_32") + add_links("crypt32", "wldap32", "Ws2_32", "Shlwapi") end if is_plat("macosx") then |