# HG changeset patch # User Mike Becker # Date 1526130191 -7200 # Node ID 39fd327f81da16d2074cac55706794957f4d9b00 # Parent 38ae05d46f9a154333618ae807475d263b71258e fixes options parser to correctly report missing arguments diff -r 38ae05d46f9a -r 39fd327f81da dav/main.c --- a/dav/main.c Sun Apr 29 11:48:12 2018 +0200 +++ b/dav/main.c Sat May 12 15:03:11 2018 +0200 @@ -79,7 +79,6 @@ CmdArgs *args = cmd_parse_args(argc - 2, argv + 2); if(!args) { print_usage(argv[0]); - cmd_args_free(args); return -1; } diff -r 38ae05d46f9a -r 39fd327f81da dav/optparser.c --- a/dav/optparser.c Sun Apr 29 11:48:12 2018 +0200 +++ b/dav/optparser.c Sat May 12 15:03:11 2018 +0200 @@ -31,6 +31,7 @@ #include #include "optparser.h" +#include "sopt.h" void cmd_args_free(CmdArgs *args) { if(args) { @@ -55,6 +56,13 @@ size_t len = strlen(arg); if(len > 1 && arg[0] == '-') { for(int c=1;cargv[a->argc++] = arg; } } + if(option) { + fprintf(stderr, + "Missing argument for option -%c\n\n", optchar); + cmd_args_free(a); + return NULL; + } return a; }