From 9e2346121dd0745a444d719a33bf0774b72343b4 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Thu, 27 Aug 2015 11:00:31 -0700 Subject: flash_{un,}lock: switch to getopt library We will be adding some more flags, so the getopt library can help. Signed-off-by: Brian Norris --- flash_unlock.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/flash_unlock.c b/flash_unlock.c index ee8ac89..777e437 100644 --- a/flash_unlock.c +++ b/flash_unlock.c @@ -13,6 +13,7 @@ #define FLASH_UNLOCK 0 #endif +#include #include #include #include @@ -35,6 +36,12 @@ static void usage(int status) exit(status); } +static const char short_opts[] = "h"; +static const struct option long_opts[] = { + { "help", no_argument, 0, 'h' }, + { NULL, 0, 0, 0 }, +}; + int main(int argc, char *argv[]) { int fd, request; @@ -43,11 +50,26 @@ int main(int argc, char *argv[]) int count; const char *dev; + for (;;) { + int c; + + c = getopt_long(argc, argv, short_opts, long_opts, NULL); + if (c == EOF) + break; + + switch (c) { + case 'h': + usage(0); + break; + default: + usage(1); + break; + } + } + /* Parse command line options */ if (argc < 2 || argc > 4) usage(1); - if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) - usage(0); dev = argv[1]; -- cgit v1.2.3