diff --git a/src/core/linker.h b/src/core/linker.h index 67a05d389..00da3a08c 100644 --- a/src/core/linker.h +++ b/src/core/linker.h @@ -143,7 +143,7 @@ public: void Relocate(Module* module); bool Resolve(const std::string& name, Loader::SymbolType type, Module* module, Loader::SymbolRecord* return_info); - void Execute(const std::vector args = std::vector()); + void Execute(const std::vector args = {}); void DebugDump(); private: diff --git a/src/emulator.cpp b/src/emulator.cpp index 43575344c..a13522e27 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -152,7 +152,7 @@ void Emulator::Run(const std::filesystem::path& file, const std::vector 32 ? 32 : args.size(); + int argc = std::min(args.size(), 32); for (int i = 0; i < argc; i++) { LOG_INFO(Loader, "Game argument {}: {}", i, args[i]); } diff --git a/src/emulator.h b/src/emulator.h index aabf6b44e..52dc4f3b3 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -26,7 +26,7 @@ public: ~Emulator(); void Run(const std::filesystem::path& file, - const std::vector args = std::vector()); + const std::vector args = {}); void UpdatePlayTime(const std::string& serial); private: diff --git a/src/main.cpp b/src/main.cpp index f81d6543f..fad3b1f53 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -139,18 +139,11 @@ int main(int argc, char* argv[]) { game_args.push_back(argv[j]); } break; - } else if (std::string(argv[i + 1]) == "--") { + } else if (i + 1 < argc && std::string(argv[i + 1]) == "--") { if (!has_game_argument) { game_path = argv[i]; has_game_argument = true; } - if (i + 2 == argc) { - std::cerr << "Warning: -- is set, but no game arguments are added!\n"; - break; - } - for (int j = i + 2; j < argc; j++) { - game_args.push_back(argv[j]); - } break; } else { std::cerr << "Unknown argument: " << cur_arg << ", see --help for info.\n"; diff --git a/src/qt_gui/main.cpp b/src/qt_gui/main.cpp index 1cb1b9e0f..8babadc35 100644 --- a/src/qt_gui/main.cpp +++ b/src/qt_gui/main.cpp @@ -144,19 +144,11 @@ int main(int argc, char* argv[]) { game_args.push_back(argv[j]); } break; - } else if (std::string(argv[i + 1]) == "--") { + } else if (i + 1 < argc && std::string(argv[i + 1]) == "--") { if (!has_game_argument) { game_path = argv[i]; has_game_argument = true; } - if (i + 2 == argc) { - std::cerr << "Warning: -- is set, but no game arguments are added!\n"; - break; - } - for (int j = i + 2; j < argc; j++) { - game_args.push_back(argv[j]); - } - break; } else { std::cerr << "Unknown argument: " << cur_arg << ", see --help for info.\n"; return 1;