- while ((opt = getopt(argc, argv, "l:o:g:")) != -1) {
- switch(opt) {
- case 'o':
- filter.objectid = arg_strtou64(optarg);
- break;
- case 'g':
- filter.generation = arg_strtou64(optarg);
- break;
- case 'l':
- filter.level = arg_strtou64(optarg);
- break;
- default:
- usage();
- exit(1);
+ while (1) {
+ static const struct option long_options[] = {
+ { "help", no_argument, NULL, GETOPT_VAL_HELP},
+ { NULL, 0, NULL, 0 }
+ };
+ int c = getopt_long(argc, argv, "al:o:g:", long_options, NULL);
+
+ if (c < 0)
+ break;
+
+ switch (c) {
+ case 'a':
+ filter.search_all = 1;
+ break;
+ case 'o':
+ filter.objectid = arg_strtou64(optarg);
+ break;
+ case 'g':
+ filter.generation = arg_strtou64(optarg);
+ break;
+ case 'l':
+ filter.level = arg_strtou64(optarg);
+ break;
+ case GETOPT_VAL_HELP:
+ default:
+ find_root_usage();
+ exit(c != GETOPT_VAL_HELP);