dav/optparser.c

changeset 684
a4b4257c1a5f
parent 517
8531b63accae
child 721
c401f4af44b1
equal deleted inserted replaced
683:53bcb5e47220 684:a4b4257c1a5f
34 #include "sopt.h" 34 #include "sopt.h"
35 35
36 void cmd_args_free(CmdArgs *args) { 36 void cmd_args_free(CmdArgs *args) {
37 if(args) { 37 if(args) {
38 ucx_map_free(args->options); 38 ucx_map_free(args->options);
39 free(args->argv); 39 if(args->argv) {
40 free(args->argv);
41 }
40 free(args); 42 free(args);
41 } 43 }
42 } 44 }
43 45
44 CmdArgs* cmd_parse_args(int argc, char **argv) { 46 CmdArgs* cmd_parse_args(int argc, char **argv) {
45 CmdArgs *a = malloc(sizeof(CmdArgs)); 47 CmdArgs *a = malloc(sizeof(CmdArgs));
46 a->options = ucx_map_new(16); 48 a->options = ucx_map_new(16);
47 a->argv = calloc(argc, sizeof(char*)); 49 a->argv = argc > 0 ? calloc(argc, sizeof(char*)) : NULL;
48 a->argc = 0; 50 a->argc = 0;
49 51
50 const char *NOARG = ""; 52 const char *NOARG = "";
51 53
52 char *option = NULL; 54 char *option = NULL;

mercurial