- if(argc > 1) {
- for(k = 1; k < argc; k++) {
- root = create(argv[k], root);
+ while (1) {
+ c = getopt(argc, argv, "dfl:hdu");
+ if (c == -1)
+ break;
+
+ switch (c) {
+
+ case 'd':
+ ignore_dotfiles = 1;
+ break;
+
+ case 'f':
+ fancy_size_display = 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 \n");
+ printf("size.\n");
+ printf("\n");
+ printf(" -d do not take into account files starting with a '.'\n");
+ printf(" -f display size with float values and K, M and G units.\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 number of lines of the TTY,\n");
+ printf(" or all the lines if 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);