diff options
author | Geoff Voelker <voelker@cs.washington.edu> | 1996-03-17 00:06:39 +0000 |
---|---|---|
committer | Geoff Voelker <voelker@cs.washington.edu> | 1996-03-17 00:06:39 +0000 |
commit | 4fd8de53a19ff6f8b19dc4a7ec61d3f04eca0d70 (patch) | |
tree | 689960135b2fc7a231caf3bd52e6f963eb6665ab /src/unexw32.c | |
parent | 6d511e9ff08ce5e2c893eb041fcef38a740a1955 (diff) | |
download | emacs-4fd8de53a19ff6f8b19dc4a7ec61d3f04eca0d70.tar.gz |
(WinMain): Allocate a console for stdout
and stderr if necessary.
Diffstat (limited to 'src/unexw32.c')
-rw-r--r-- | src/unexw32.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/unexw32.c b/src/unexw32.c index 67555b2ad36..e00662a0fea 100644 --- a/src/unexw32.c +++ b/src/unexw32.c @@ -75,6 +75,9 @@ WinMain (_hinst, _hPrevInst, _lpCmdLine, _nCmdShow) LPSTR _lpCmdLine; int _nCmdShow; { + int i, j, new_argc; + char **new_argv; + /* Need to parse command line */ hinst = _hinst; @@ -82,7 +85,26 @@ WinMain (_hinst, _hPrevInst, _lpCmdLine, _nCmdShow) lpCmdLine = _lpCmdLine; nCmdShow = _nCmdShow; - return (main (__argc,__argv,_environ)); + new_argc = __argc; + new_argv = (char **) xmalloc (sizeof (char *) * new_argc); + if (!new_argv) + return main (__argc, __argv, _environ); + + for (i = j = 0; i < __argc; i++) + { + /* Allocate a console window for stdout and stderr if requested. + We want to allocate as soon as we possibly can to catch + debugging output. */ + if (!strcmp ("-output_console", __argv[i])) + { + AllocConsole (); + new_argc--; + continue; + } + new_argv[j++] = __argv[i]; + } + + return main (new_argc, new_argv, _environ); } #endif /* HAVE_NTGUI */ |