* as/hc08/asmain.c (asexit),
[fw/sdcc] / src / SDCCmain.c
index c766791178517c1e3617467478a35079ca37ee8e..770cbff09b272bb6f389e42c659632c8da504236 100644 (file)
@@ -91,10 +91,9 @@ int ds390_jammed = 0;
 char scratchFileName[PATH_MAX];
 char buffer[PATH_MAX * 2];
 
-#define OPTION_HELP     "-help"
-
 #define LENGTH(_a)      (sizeof(_a)/sizeof(*(_a)))
 
+#define OPTION_HELP             "--help"
 #define OPTION_STACK_8BIT       "--stack-8bit"
 #define OPTION_OUT_FMT_IHX      "--out-fmt-ihx"
 #define OPTION_OUT_FMT_S19      "--out-fmt-s19"
@@ -146,7 +145,7 @@ char buffer[PATH_MAX * 2];
 static const OPTION
 optionsTable[] = {
     { 0,    NULL,                   NULL, "General options" },
-    { 0,    "--help",               NULL, "Display this help" },
+    { 0,    OPTION_HELP,            NULL, "Display this help" },
     { 'v',  OPTION_VERSION,         NULL, "Display sdcc's version" },
     { 0,    "--verbose",            &options.verbose, "Trace calls to the preprocessor, assembler, and linker" },
     { 'V',  NULL,                   &options.verboseExec, "Execute verbosely.  Show sub commands as they are run" },
@@ -165,7 +164,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 +498,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 +880,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 +964,7 @@ parseCmdLine (int argc, char **argv)
           if (strcmp (argv[i], OPTION_VERSION) == 0)
             {
               printVersionInfo (stdout);
-              exit (0);
+              exit (EXIT_SUCCESS);
               continue;
             }
 
@@ -1438,7 +1436,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;
 }
@@ -1862,7 +1859,7 @@ linkEdit (char **envp)
         options.out_fmt ? ".S19" : ".ihx",
         sizeof(scratchFileName));
       if (strcmp (fullDstFileName, scratchFileName))
-        unlink (fullDstFileName);
+        remove (fullDstFileName);
       rename (scratchFileName, fullDstFileName);
 
       strncpyz (buffer, fullDstFileName, sizeof(buffer));
@@ -1878,14 +1875,14 @@ linkEdit (char **envp)
       *q = 0;
       strncatz(buffer, ".map", sizeof(buffer));
       if (strcmp (scratchFileName, buffer))
-        unlink (buffer);
+        remove (buffer);
       rename (scratchFileName, buffer);
       *p = 0;
       strncatz (scratchFileName, ".mem", sizeof(scratchFileName));
       *q = 0;
       strncatz(buffer, ".mem", sizeof(buffer));
       if (strcmp (scratchFileName, buffer))
-        unlink (buffer);
+        remove (buffer);
       rename (scratchFileName, buffer);
       if (options.debug)
         {
@@ -1894,13 +1891,13 @@ linkEdit (char **envp)
           *q = 0;
           strncatz(buffer, ".cdb", sizeof(buffer));
           if (strcmp (scratchFileName, buffer))
-            unlink (buffer);
+            remove (buffer);
           rename (scratchFileName, buffer);
           /* and the OMF file without extension: */
           *p = 0;
           *q = 0;
           if (strcmp (scratchFileName, buffer))
-            unlink (buffer);
+            remove (buffer);
           rename (scratchFileName, buffer);
         }
     }
@@ -1953,7 +1950,7 @@ assemble (char **envp)
                   port->linker.rel_ext,
                   sizeof(scratchFileName));
         if (strcmp (scratchFileName, fullDstFileName))
-          unlink (fullDstFileName);
+          remove (fullDstFileName);
         rename (scratchFileName, fullDstFileName);
     }
 }