Mercurial > sdl-ios-xcode
diff src/main/win32/SDL_win32_main.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 14717b52abc0 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/main/win32/SDL_win32_main.c Sun May 21 17:27:13 2006 +0000 +++ b/src/main/win32/SDL_win32_main.c Sun May 28 13:04:16 2006 +0000 @@ -40,11 +40,11 @@ #ifndef NO_STDIO_REDIRECT # ifdef _WIN32_WCE - static wchar_t stdoutPath[MAX_PATH]; - static wchar_t stderrPath[MAX_PATH]; +static wchar_t stdoutPath[MAX_PATH]; +static wchar_t stderrPath[MAX_PATH]; # else - static char stdoutPath[MAX_PATH]; - static char stderrPath[MAX_PATH]; +static char stdoutPath[MAX_PATH]; +static char stderrPath[MAX_PATH]; # endif #endif @@ -54,114 +54,119 @@ #endif /* _WIN32_WCE < 300 */ /* Parse a command line buffer into arguments */ -static int ParseCommandLine(char *cmdline, char **argv) +static int +ParseCommandLine (char *cmdline, char **argv) { - char *bufp; - int argc; + char *bufp; + int argc; - argc = 0; - for ( bufp = cmdline; *bufp; ) { - /* Skip leading whitespace */ - while ( isspace(*bufp) ) { - ++bufp; - } - /* Skip over argument */ - if ( *bufp == '"' ) { - ++bufp; - if ( *bufp ) { - if ( argv ) { - argv[argc] = bufp; - } - ++argc; - } - /* Skip over word */ - while ( *bufp && (*bufp != '"') ) { - ++bufp; - } - } else { - if ( *bufp ) { - if ( argv ) { - argv[argc] = bufp; - } - ++argc; - } - /* Skip over word */ - while ( *bufp && ! isspace(*bufp) ) { - ++bufp; - } - } - if ( *bufp ) { - if ( argv ) { - *bufp = '\0'; - } - ++bufp; - } - } - if ( argv ) { - argv[argc] = NULL; - } - return(argc); + argc = 0; + for (bufp = cmdline; *bufp;) { + /* Skip leading whitespace */ + while (isspace (*bufp)) { + ++bufp; + } + /* Skip over argument */ + if (*bufp == '"') { + ++bufp; + if (*bufp) { + if (argv) { + argv[argc] = bufp; + } + ++argc; + } + /* Skip over word */ + while (*bufp && (*bufp != '"')) { + ++bufp; + } + } else { + if (*bufp) { + if (argv) { + argv[argc] = bufp; + } + ++argc; + } + /* Skip over word */ + while (*bufp && !isspace (*bufp)) { + ++bufp; + } + } + if (*bufp) { + if (argv) { + *bufp = '\0'; + } + ++bufp; + } + } + if (argv) { + argv[argc] = NULL; + } + return (argc); } /* Show an error message */ -static void ShowError(const char *title, const char *message) +static void +ShowError (const char *title, const char *message) { /* If USE_MESSAGEBOX is defined, you need to link with user32.lib */ #ifdef USE_MESSAGEBOX - MessageBox(NULL, message, title, MB_ICONEXCLAMATION|MB_OK); + MessageBox (NULL, message, title, MB_ICONEXCLAMATION | MB_OK); #else - fprintf(stderr, "%s: %s\n", title, message); + fprintf (stderr, "%s: %s\n", title, message); #endif } /* Pop up an out of memory message, returns to Windows */ -static BOOL OutOfMemory(void) +static BOOL +OutOfMemory (void) { - ShowError("Fatal Error", "Out of memory - aborting"); - return FALSE; + ShowError ("Fatal Error", "Out of memory - aborting"); + return FALSE; } /* SDL_Quit() shouldn't be used with atexit() directly because calling conventions may differ... */ -static void cleanup(void) +static void +cleanup (void) { - SDL_Quit(); + SDL_Quit (); } /* Remove the output files if there was no output written */ -static void cleanup_output(void) +static void +cleanup_output (void) { #ifndef NO_STDIO_REDIRECT - FILE *file; - int empty; + FILE *file; + int empty; #endif - /* Flush the output in case anything is queued */ - fclose(stdout); - fclose(stderr); + /* Flush the output in case anything is queued */ + fclose (stdout); + fclose (stderr); #ifndef NO_STDIO_REDIRECT - /* See if the files have any output in them */ - if ( stdoutPath[0] ) { - file = fopen(stdoutPath, TEXT("rb")); - if ( file ) { - empty = (fgetc(file) == EOF) ? 1 : 0; - fclose(file); - if ( empty ) { - remove(stdoutPath); - } - } - } - if ( stderrPath[0] ) { - file = fopen(stderrPath, TEXT("rb")); - if ( file ) { - empty = (fgetc(file) == EOF) ? 1 : 0; - fclose(file); - if ( empty ) { - remove(stderrPath); - } - } - } + /* See if the files have any output in them */ + if (stdoutPath[0]) { + file = fopen (stdoutPath, TEXT ("rb")); + if (file) { + empty = (fgetc (file) == EOF) ? 1 : 0; + fclose (file); + if (empty) { + remove (stdoutPath); + } + } + } + if (stderrPath[0]) { + file = fopen (stderrPath, TEXT ("rb")); + if (file) { + empty = (fgetc (file) == EOF) ? 1 : 0; + fclose (file); + if (empty) { + remove (stderrPath); + } + } + } #endif } @@ -171,187 +176,194 @@ #endif /* This is where execution begins [console apps] */ -int console_main(int argc, char *argv[]) +int +console_main (int argc, char *argv[]) { - size_t n; - char *bufp, *appname; - int status; + size_t n; + char *bufp, *appname; + int status; - /* Get the class name from argv[0] */ - appname = argv[0]; - if ( (bufp=SDL_strrchr(argv[0], '\\')) != NULL ) { - appname = bufp+1; - } else - if ( (bufp=SDL_strrchr(argv[0], '/')) != NULL ) { - appname = bufp+1; - } + /* Get the class name from argv[0] */ + appname = argv[0]; + if ((bufp = SDL_strrchr (argv[0], '\\')) != NULL) { + appname = bufp + 1; + } else if ((bufp = SDL_strrchr (argv[0], '/')) != NULL) { + appname = bufp + 1; + } - if ( (bufp=SDL_strrchr(appname, '.')) == NULL ) - n = SDL_strlen(appname); - else - n = (bufp-appname); + if ((bufp = SDL_strrchr (appname, '.')) == NULL) + n = SDL_strlen (appname); + else + n = (bufp - appname); - bufp = SDL_stack_alloc(char, n+1); - if ( bufp == NULL ) { - return OutOfMemory(); - } - SDL_strlcpy(bufp, appname, n+1); - appname = bufp; + bufp = SDL_stack_alloc (char, n + 1); + if (bufp == NULL) { + return OutOfMemory (); + } + SDL_strlcpy (bufp, appname, n + 1); + appname = bufp; - /* Load SDL dynamic link library */ - if ( SDL_Init(SDL_INIT_NOPARACHUTE) < 0 ) { - ShowError("WinMain() error", SDL_GetError()); - return(FALSE); - } - atexit(cleanup_output); - atexit(cleanup); + /* Load SDL dynamic link library */ + if (SDL_Init (SDL_INIT_NOPARACHUTE) < 0) { + ShowError ("WinMain() error", SDL_GetError ()); + return (FALSE); + } + atexit (cleanup_output); + atexit (cleanup); - /* Sam: - We still need to pass in the application handle so that - DirectInput will initialize properly when SDL_RegisterApp() - is called later in the video initialization. - */ - SDL_SetModuleHandle(GetModuleHandle(NULL)); + /* Sam: + We still need to pass in the application handle so that + DirectInput will initialize properly when SDL_RegisterApp() + is called later in the video initialization. + */ + SDL_SetModuleHandle (GetModuleHandle (NULL)); - /* Run the application main() code */ - status = SDL_main(argc, argv); + /* Run the application main() code */ + status = SDL_main (argc, argv); - /* Exit cleanly, calling atexit() functions */ - exit(status); + /* Exit cleanly, calling atexit() functions */ + exit (status); - /* Hush little compiler, don't you cry... */ - return 0; + /* Hush little compiler, don't you cry... */ + return 0; } /* This is where execution begins [windowed apps] */ #ifdef _WIN32_WCE -int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw) +int WINAPI +WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw) #else -int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) +int WINAPI +WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw) #endif { - HINSTANCE handle; - char **argv; - int argc; - char *cmdline; - DWORD pathlen; + HINSTANCE handle; + char **argv; + int argc; + char *cmdline; + DWORD pathlen; #ifdef _WIN32_WCE - wchar_t path[MAX_PATH]; + wchar_t path[MAX_PATH]; #else - char path[MAX_PATH]; + char path[MAX_PATH]; #endif #ifdef _WIN32_WCE - wchar_t *bufp; - int nLen; + wchar_t *bufp; + int nLen; #else - char *bufp; - size_t nLen; + char *bufp; + size_t nLen; #endif #ifndef NO_STDIO_REDIRECT - FILE *newfp; + FILE *newfp; #endif - /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't - keep them open. This is a hack.. hopefully it will be fixed - someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded. - */ - handle = LoadLibrary(TEXT("DDRAW.DLL")); - if ( handle != NULL ) { - FreeLibrary(handle); - } - + /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't + keep them open. This is a hack.. hopefully it will be fixed + someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded. + */ + handle = LoadLibrary (TEXT ("DDRAW.DLL")); + if (handle != NULL) { + FreeLibrary (handle); + } #ifndef NO_STDIO_REDIRECT - pathlen = GetModuleFileName(NULL, path, SDL_arraysize(path)); - while ( pathlen > 0 && path[pathlen] != '\\' ) { - --pathlen; - } - path[pathlen] = '\0'; + pathlen = GetModuleFileName (NULL, path, SDL_arraysize (path)); + while (pathlen > 0 && path[pathlen] != '\\') { + --pathlen; + } + path[pathlen] = '\0'; #ifdef _WIN32_WCE - wcsncpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); - wcsncat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); + wcsncpy (stdoutPath, path, SDL_arraysize (stdoutPath)); + wcsncat (stdoutPath, DIR_SEPERATOR STDOUT_FILE, + SDL_arraysize (stdoutPath)); #else - SDL_strlcpy( stdoutPath, path, SDL_arraysize(stdoutPath) ); - SDL_strlcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); + SDL_strlcpy (stdoutPath, path, SDL_arraysize (stdoutPath)); + SDL_strlcat (stdoutPath, DIR_SEPERATOR STDOUT_FILE, + SDL_arraysize (stdoutPath)); #endif - - /* Redirect standard input and standard output */ - newfp = freopen(stdoutPath, TEXT("w"), stdout); + + /* Redirect standard input and standard output */ + newfp = freopen (stdoutPath, TEXT ("w"), stdout); #ifndef _WIN32_WCE - if ( newfp == NULL ) { /* This happens on NT */ + if (newfp == NULL) { /* This happens on NT */ #if !defined(stdout) - stdout = fopen(stdoutPath, TEXT("w")); + stdout = fopen (stdoutPath, TEXT ("w")); #else - newfp = fopen(stdoutPath, TEXT("w")); - if ( newfp ) { - *stdout = *newfp; - } + newfp = fopen (stdoutPath, TEXT ("w")); + if (newfp) { + *stdout = *newfp; + } #endif - } + } #endif /* _WIN32_WCE */ #ifdef _WIN32_WCE - wcsncpy( stderrPath, path, SDL_arraysize(stdoutPath) ); - wcsncat( stderrPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) ); + wcsncpy (stderrPath, path, SDL_arraysize (stdoutPath)); + wcsncat (stderrPath, DIR_SEPERATOR STDOUT_FILE, + SDL_arraysize (stdoutPath)); #else - SDL_strlcpy( stderrPath, path, SDL_arraysize(stderrPath) ); - SDL_strlcat( stderrPath, DIR_SEPERATOR STDERR_FILE, SDL_arraysize(stderrPath) ); + SDL_strlcpy (stderrPath, path, SDL_arraysize (stderrPath)); + SDL_strlcat (stderrPath, DIR_SEPERATOR STDERR_FILE, + SDL_arraysize (stderrPath)); #endif - newfp = freopen(stderrPath, TEXT("w"), stderr); + newfp = freopen (stderrPath, TEXT ("w"), stderr); #ifndef _WIN32_WCE - if ( newfp == NULL ) { /* This happens on NT */ + if (newfp == NULL) { /* This happens on NT */ #if !defined(stderr) - stderr = fopen(stderrPath, TEXT("w")); + stderr = fopen (stderrPath, TEXT ("w")); #else - newfp = fopen(stderrPath, TEXT("w")); - if ( newfp ) { - *stderr = *newfp; - } + newfp = fopen (stderrPath, TEXT ("w")); + if (newfp) { + *stderr = *newfp; + } #endif - } + } #endif /* _WIN32_WCE */ - setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */ - setbuf(stderr, NULL); /* No buffering */ + setvbuf (stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */ + setbuf (stderr, NULL); /* No buffering */ #endif /* !NO_STDIO_REDIRECT */ #ifdef _WIN32_WCE - nLen = wcslen(szCmdLine)+128+1; - bufp = SDL_stack_alloc(wchar_t, nLen*2); - wcscpy (bufp, TEXT("\"")); - GetModuleFileName(NULL, bufp+1, 128-3); - wcscpy (bufp+wcslen(bufp), TEXT("\" ")); - wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp)); - nLen = wcslen(bufp)+1; - cmdline = SDL_stack_alloc(char, nLen); - if ( cmdline == NULL ) { - return OutOfMemory(); - } - WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL); + nLen = wcslen (szCmdLine) + 128 + 1; + bufp = SDL_stack_alloc (wchar_t, nLen * 2); + wcscpy (bufp, TEXT ("\"")); + GetModuleFileName (NULL, bufp + 1, 128 - 3); + wcscpy (bufp + wcslen (bufp), TEXT ("\" ")); + wcsncpy (bufp + wcslen (bufp), szCmdLine, nLen - wcslen (bufp)); + nLen = wcslen (bufp) + 1; + cmdline = SDL_stack_alloc (char, nLen); + if (cmdline == NULL) { + return OutOfMemory (); + } + WideCharToMultiByte (CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL); #else - /* Grab the command line */ - bufp = GetCommandLine(); - nLen = SDL_strlen(bufp)+1; - cmdline = SDL_stack_alloc(char, nLen); - if ( cmdline == NULL ) { - return OutOfMemory(); - } - SDL_strlcpy(cmdline, bufp, nLen); + /* Grab the command line */ + bufp = GetCommandLine (); + nLen = SDL_strlen (bufp) + 1; + cmdline = SDL_stack_alloc (char, nLen); + if (cmdline == NULL) { + return OutOfMemory (); + } + SDL_strlcpy (cmdline, bufp, nLen); #endif - /* Parse it into argv and argc */ - argc = ParseCommandLine(cmdline, NULL); - argv = SDL_stack_alloc(char*, argc+1); - if ( argv == NULL ) { - return OutOfMemory(); - } - ParseCommandLine(cmdline, argv); + /* Parse it into argv and argc */ + argc = ParseCommandLine (cmdline, NULL); + argv = SDL_stack_alloc (char *, argc + 1); + if (argv == NULL) { + return OutOfMemory (); + } + ParseCommandLine (cmdline, argv); - /* Run the main program (after a little SDL initialization) */ - console_main(argc, argv); + /* Run the main program (after a little SDL initialization) */ + console_main (argc, argv); - /* Hush little compiler, don't you cry... */ - return 0; + /* Hush little compiler, don't you cry... */ + return 0; } + +/* vi: set ts=4 sw=4 expandtab: */