From bf5438119dd58e804fdb55d1bc7dc520406b2dfd Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 27 Nov 2025 10:22:53 -0800
Subject: [PATCH] Cleaned up command line handling
---
game/main.cpp | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/game/main.cpp b/game/main.cpp
index c0d45446..eeb71d58 100644
--- a/game/main.cpp
+++ b/game/main.cpp
@@ -137,15 +137,13 @@ static void CheatDialogDone(void*, UIDialog *dialog, int status)
/* -- Print a Usage message and quit.
In several places we depend on this function exiting.
*/
-static char *progname;
-void PrintUsage(void)
+void PrintUsage(const char *progname)
{
SDL_Log("Usage: %s <options>", progname);
SDL_Log("Where <options> can be any of:\n"
-" --fullscreen # Run Maelstrom in full-screen mode\n"
-" --windowed # Run Maelstrom in windowed mode\n"
+" --fullscreen # Run Maelstrom in full-screen mode\n"
+" --windowed # Run Maelstrom in windowed mode\n"
);
- exit(1);
}
/* ----------------------------------------------------------------- */
@@ -190,16 +188,17 @@ int main(int argc, char *argv[])
#if /*!defined(FAST_ITERATION) ||*/ defined(__IPHONEOS__)
window_flags |= SDL_WINDOW_FULLSCREEN;
#endif
- for ( progname=argv[0]; --argc; ++argv ) {
- if ( strcmp(argv[1], "--fullscreen") == 0 ) {
+ for ( int i = 1; i < argc; ++i ) {
+ if ( strcmp(argv[i], "--fullscreen") == 0 ) {
window_flags |= SDL_WINDOW_FULLSCREEN;
- } else if ( strcmp(argv[1], "--windowed") == 0 ) {
+ } else if ( strcmp(argv[i], "--windowed") == 0 ) {
window_flags &= ~SDL_WINDOW_FULLSCREEN;
- } else if ( strcmp(argv[1], "--version") == 0 ) {
+ } else if ( strcmp(argv[i], "--version") == 0 ) {
error("%s", Version);
exit(0);
} else {
- PrintUsage();
+ PrintUsage(argv[0]);
+ exit(1);
}
}