From 38f41f4f947b8488ffe7bc3de53cc6db5a17ffae Mon Sep 17 00:00:00 2001 From: derrod Date: Mon, 7 Aug 2023 19:42:56 +0200 Subject: [PATCH] UI: Copy OBS command line arguments to updater launch --- UI/update/win-update.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/UI/update/win-update.cpp b/UI/update/win-update.cpp index 9b01c3dde..a4a8766e9 100644 --- a/UI/update/win-update.cpp +++ b/UI/update/win-update.cpp @@ -345,13 +345,25 @@ try { execInfo.cbSize = sizeof(execInfo); execInfo.lpFile = wUpdateFilePath; - string parameters = ""; - if (App()->IsPortableMode()) - parameters += "--portable"; - if (branch != WIN_DEFAULT_BRANCH) { + string parameters; + if (branch != WIN_DEFAULT_BRANCH) + parameters += "--branch=" + branch; + + obs_cmdline_args obs_args = obs_get_cmdline_args(); + for (int idx = 1; idx < obs_args.argc; idx++) { if (!parameters.empty()) parameters += " "; - parameters += "--branch=" + branch; + + parameters += obs_args.argv[idx]; + } + + /* Portable mode can be enabled via sentinel files, so copying the + * command line doesn't guarantee the flag to be there. */ + if (App()->IsPortableMode() && + parameters.find("--portable") == string::npos) { + if (!parameters.empty()) + parameters += " "; + parameters += "--portable"; } BPtr lpParameters;