- if(argc > 1) {
- for(k = 1; k < argc; k++) {
- root = create(argv[k], root);
+ while (1) {
+ c = getopt(argc, argv, "dfrl:hdu");
+ if (c == -1)
+ break;
+
+ switch (c) {
+
+ case 'd':
+ ignore_dotfiles = 1;
+ break;
+
+ case 'f':
+ fancy_size_display = 1;
+ break;
+
+ case 'r':
+ reverse_sorting = 1;
+ break;
+
+ case 'l':
+ forced_height = atoi(optarg);
+ break;
+
+ case 'h':
+ printf("Usage: dus [OPTION]... [FILE]...\n");
+ printf("List files and directories sorted according to their size or content size (the content of the current directory by default).\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(" -l <lines> specificy the number of lines to display. The value -1\n");
+ printf(" corresponds to all the lines. By default the command\n");
+ printf(" shows one line less than the height the tty, or all the\n");
+ printf(" lines if the standard output is not a tty.\n");
+ printf(" -h show this help.\n");
+ printf("\n");
+ printf("Report bugs and comments to <francois@fleuret.org>\n");
+ exit(EXIT_SUCCESS);
+
+ break;
+
+ default:
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ if (optind < argc) {
+ while (optind < argc) {
+ root = create(argv[optind++], root);