Removed the REVISION_NUMBER. Prints help on either stderr or stdout.
[dus.git] / dus.c
diff --git a/dus.c b/dus.c
index 04147a1..e0b602e 100644 (file)
--- a/dus.c
+++ b/dus.c
@@ -22,6 +22,8 @@
  *
  */
 
+#define VERSION_NUMBER "1.0alpha"
+
 #define _BSD_SOURCE
 
 #include <sys/types.h>
@@ -288,6 +290,25 @@ void print_sorted(struct file_with_size *root, int width, int height) {
 
   free(nodes);
 }
+/**********************************************************************/
+void print_help(FILE *out) {
+  fprintf(out, "Usage: dus [OPTION]... [FILE]...\n");
+  fprintf(out, "Version %s\n", VERSION_NUMBER);
+  fprintf(out, "List files and directories sorted according to their size or content size. Take the content of the current directory as argument if none is provided.\n");
+  fprintf(out, "\n");
+  fprintf(out, "   -d          ignore files and directories starting with a '.'\n");
+  fprintf(out, "   -f          display size with float values and K, M and G units.\n");
+  fprintf(out, "   -r          reverse the sorting order.\n");
+  fprintf(out, "   -t          show the top of the list.\n");
+  fprintf(out, "   -c <cols>   specificy the number of columns to display. The value -1\n");
+  fprintf(out, "               corresponds to no constraint. By default the command\n");
+  fprintf(out, "               uses the tty width, or no constraint if the stdout is\n");
+  fprintf(out, "               not a tty.\n");
+  fprintf(out, "   -l <lines>  same as -c for number of lines.\n");
+  fprintf(out, "   -h          show this help.\n");
+  fprintf(out, "\n");
+  fprintf(out, "Report bugs and comments to <francois@fleuret.org>\n");
+}
 
 /**********************************************************************/
 
@@ -331,26 +352,13 @@ int main(int argc, char **argv) {
       break;
 
     case 'h':
-      printf("Usage: dus [OPTION]... [FILE]...\n");
-      printf("List files and directories sorted according to their size or content size. Take the content of the current directory as argument if none is provided.\n");
-      printf("\n");
-      printf("   -d          ignore files and directories starting with a '.'\n");
-      printf("   -f          display size with float values and K, M and G units.\n");
-      printf("   -r          reverse the sorting order.\n");
-      printf("   -t          show the top of the list.\n");
-      printf("   -c <cols>   specificy the number of columns to display. The value -1\n");
-      printf("               corresponds to no constraint. By default the command\n");
-      printf("               uses the tty width, or no constraint if the stdout is\n");
-      printf("               not a tty.\n");
-      printf("   -l <lines>  same as -c for number of lines.\n");
-      printf("   -h          show this help.\n");
-      printf("\n");
-      printf("Report bugs and comments to <francois@fleuret.org>\n");
+      print_help(stdout);
       exit(EXIT_SUCCESS);
 
       break;
 
     default:
+      print_help(stderr);
       exit(EXIT_FAILURE);
     }
   }