Send usage output to stdout or stderr depending on context.
authorMatthew Booth <mbooth@redhat.com>
Fri, 1 Oct 2010 16:23:11 +0000 (17:23 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 1 Oct 2010 16:23:11 +0000 (17:23 +0100)
If usage information is displayed because of an error, it should go to stderr.
If it is displayed because the -h option was given it should go to stdout.

helper/main.c

index 4afcb24..f194008 100644 (file)
@@ -51,9 +51,10 @@ static const struct option long_options[] = {
 };
 
 static void
-usage (const char *progname)
+usage (FILE *f, const char *progname)
 {
-  printf ("%s: build the supermin appliance on the fly\n"
+  fprintf (f,
+          "%s: build the supermin appliance on the fly\n"
           "\n"
           "Usage:\n"
           "  %s [-options] inputs [...] host_cpu kernel initrd\n"
@@ -99,7 +100,7 @@ main (int argc, char *argv[])
 
     switch (c) {
     case HELP_OPTION:
-      usage (argv[0]);
+      usage (stdout, argv[0]);
       exit (EXIT_SUCCESS);
 
     case 'f':
@@ -119,7 +120,7 @@ main (int argc, char *argv[])
       exit (EXIT_SUCCESS);
 
     default:
-      usage (argv[0]);
+      usage (stderr, argv[0]);
       exit (EXIT_FAILURE);
     }
   }