cli: fix emu_argv propagation

This commit is contained in:
Megamouse
2026-09-30 11:35:06 +03:00
committed by Elad
parent 00fe384258
commit ad7c7a28aa
+6 -5
View File
@@ -1250,7 +1250,8 @@ int run_rpcs3(int argc, char** argv)
} }
else if (const QStringList args = parser.positionalArguments(); (!args.isEmpty() || !emu_argv.empty()) && !is_updating && !parser.isSet(arg_installfw) && !parser.isSet(arg_installpkg)) else if (const QStringList args = parser.positionalArguments(); (!args.isEmpty() || !emu_argv.empty()) && !is_updating && !parser.isSet(arg_installfw) && !parser.isSet(arg_installpkg))
{ {
std::string spath = (args.isEmpty() ? emu_argv[0] : ::at32(args, 0).toStdString()); u32 emu_argv_pos = 0;
std::string spath = (args.isEmpty() ? emu_argv[emu_argv_pos++] : ::at32(args, 0).toStdString());
if (spath.starts_with(Emulator::vfs_boot_prefix)) if (spath.starts_with(Emulator::vfs_boot_prefix))
{ {
@@ -1287,7 +1288,7 @@ int run_rpcs3(int argc, char** argv)
} }
// Additional arguments passed after "--" // Additional arguments passed after "--"
if (emu_argv.size() > (args.isEmpty() ? 1 : 0)) if (emu_argv_pos < emu_argv.size())
{ {
// Reserve empty string for executable path // Reserve empty string for executable path
if (rpcs3_argv.empty()) if (rpcs3_argv.empty())
@@ -1297,12 +1298,12 @@ int run_rpcs3(int argc, char** argv)
rpcs3_argv.emplace_back(); rpcs3_argv.emplace_back();
for (usz i = args.isEmpty() ? 1 : 0; i != emu_argv.size(); i++) for (; emu_argv_pos < emu_argv.size(); emu_argv_pos++)
{ {
const std::string arg = args[i].toStdString(); const std::string arg = emu_argv[emu_argv_pos];
rpcs3_argv.emplace_back(arg); rpcs3_argv.emplace_back(arg);
sys_log.success("Optional command line argument %d: %s", i, arg); sys_log.success("Optional command line argument %d: %s", emu_argv_pos, arg);
} }
} }