* src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 30 May 2006 19:24:29 +0000 (19:24 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 30 May 2006 19:24:29 +0000 (19:24 +0000)
  immediately when encountered,
  (printUsage): always use stderr even on windows

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4200 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCmain.c

index 8770133e3e61a14f00064255f7705b954e60ec3e..91cfe17fb505e843cad5cf50a8eebf6d1cbac3a7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
+         immediately when encountered,
+         (printUsage): always use stderr even on windows
+
 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
 
        * src/SDCCast.c (isLoopCountable): fixed bug #1478316
@@ -5,7 +11,7 @@
        * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
        parseCmdLine, main): print version to stdout, help to stdout on
        windows and to stderr on all the rest; exit with EXIT_FAILURE if
-       no arguments given      
+       no arguments given
 
 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
 
index c766791178517c1e3617467478a35079ca37ee8e..009fc39d79a5c1f5c0ff97c565ad8c92e2cc5f06 100644 (file)
@@ -165,7 +165,7 @@ optionsTable[] = {
     { 'o',  NULL,                   NULL, "Place the output into the given path resp. file" },
     { 0,    OPTION_PRINT_SEARCH_DIRS, &options.printSearchDirs, "display the directories in the compiler's search path"},
     { 0,    OPTION_MSVC_ERROR_STYLE, &options.vc_err_style, "messages are compatible with Micro$oft visual studio"},
-    { 0,    OPTION_USE_STDOUT, &options.use_stdout, "send errors to stdout instead of stderr"},
+    { 0,    OPTION_USE_STDOUT,      NULL, "send errors to stdout instead of stderr"},
     { 0,    "--nostdlib",           &options.nostdlib, "Do not include the standard library directory in the search path" },
     { 0,    "--nostdinc",           &options.nostdinc, "Do not include the standard include directory in the search path" },
     { 0,    OPTION_LESS_PEDANTIC,   NULL, "Disable some of the more pedantic warnings" },
@@ -499,17 +499,7 @@ static void
 printUsage (void)
 {
     int i;
-#if defined(__MINGW32__)
-    FILE *stream = stdout;
-#elif defined(__DJGPP__)
-    FILE *stream = stdout;
-#elif defined(_MSC_VER)
-    FILE *stream = stdout;
-#elif defined(__BORLANDC__)
-    FILE *stream = stdout;
-#else
     FILE *stream = stderr;
-#endif
 
     printVersionInfo (stream);
     fprintf (stream,
@@ -891,6 +881,15 @@ parseCmdLine (int argc, char **argv)
       /* options */
       if (argv[i][0] == '-' && argv[i][1] == '-')
         {
+          if (strcmp (argv[i], OPTION_USE_STDOUT) == 0)
+            {
+              if (options.use_stdout == 0)
+                {
+                  options.use_stdout = 1;
+                  dup2(STDOUT_FILENO, STDERR_FILENO);
+                }
+              continue;
+            }
           if (strcmp (argv[i], OPTION_HELP) == 0)
             {
               printUsage ();
@@ -966,7 +965,7 @@ parseCmdLine (int argc, char **argv)
           if (strcmp (argv[i], OPTION_VERSION) == 0)
             {
               printVersionInfo (stdout);
-              exit (0);
+              exit (EXIT_SUCCESS);
               continue;
             }
 
@@ -1438,7 +1437,6 @@ parseCmdLine (int argc, char **argv)
         werror (E_FILE_OPEN_ERR, scratchFileName);
     }
   MSVC_style(options.vc_err_style);
-  if(options.use_stdout) dup2(STDOUT_FILENO, STDERR_FILENO);
 
   return 0;
 }