diff options
| author | Tom Smeding <tom@tomsmeding.com> | 2024-09-08 22:49:53 +0200 | 
|---|---|---|
| committer | Tom Smeding <tom@tomsmeding.com> | 2024-09-08 22:49:53 +0200 | 
| commit | 415f65b5671fdea8bb41f4d8c14cef4d7b1ec235 (patch) | |
| tree | 57ffc14121988e5dfe7111475593ee541660177e | |
| parent | f017c53ec62b03e34c4ba4eb80eb3ec82bbff4ff (diff) | |
hus: Gebruik option_parse
| -rw-r--r-- | src/hus.c | 52 | 
1 files changed, 18 insertions, 34 deletions
| @@ -11,6 +11,7 @@  #include "util/debug.h"  #include "util/error.h" +#include "util/option.h"  #include "util/versie.h"  static char *shufrange = NULL; @@ -54,43 +55,26 @@ static void shuf_lines() {    free(js);  } -static void usage(FILE *f) { -  fprintf(f, -      "Gebruik: hus [-hV] [BESTAND]\n" -      "         hus -i LA-HO [-hV]\n" -      "\n" -      "Hussel de regels van het gegeven bestand.\n" -      "Als er geen bestand gegeven is, of bestand is -, hussel dan de regels op standaard invoer.\n" -      "\n" -      "  -i LA-HO    Genereer regels van laag naar hoog en hussel deze\n" -      "  -h          Toon deze hulptekst\n" -      "  -V          Toon versienummer\n"); -} +static const char *usage_string = +  "Gebruik: hus [-hV] [BESTAND]\n" +  "         hus -i LA-HO [-hV]\n" +  "\n" +  "Hussel de regels van het gegeven bestand.\n" +  "Als er geen bestand gegeven is, of bestand is -, hussel dan de regels op standaard invoer.\n" +  "\n" +  "  -i LA-HO    Genereer regels van laag naar hoog en hussel deze\n" +  "  -h          Toon deze hulptekst\n" +  "  -V          Toon versienummer\n";  static char** parse_options(int argc, char **argv) { -  int opt; -  while ((opt = getopt(argc, argv, "i:hV")) != -1) { -    switch (opt) { -      case 'i': -        shufrange = optarg; -        break; - -      case 'h': -        usage(stdout); -        exit(0); - -      case 'V': -        drukkedoos_print_versie(stdout); -        exit(0); - -      case '?': -        fprintf(stderr, "hus: Ongeldige optie: -%c\n", optopt); -        usage(stderr); -        exit(1); -    } -  } +  const struct option_spec spec[] = { +    {'i', OPTION_WITHARG(&shufrange)}, +    {'h', OPTION_HELPUSAGE(usage_string)}, +    {'V', OPTION_VERSION()}, +    OPTION_SPEC_END +  }; -  return argv + optind; +  return option_parse(argc, argv, spec);  }  static int exec_shufrange() { | 
