41 CmdArgs *a = malloc(sizeof(CmdArgs)); |
41 CmdArgs *a = malloc(sizeof(CmdArgs)); |
42 a->options = ucx_map_new(16); |
42 a->options = ucx_map_new(16); |
43 a->argv = calloc(argc, sizeof(char*)); |
43 a->argv = calloc(argc, sizeof(char*)); |
44 a->argc = 0; |
44 a->argc = 0; |
45 |
45 |
|
46 const char *NOARG = ""; |
|
47 |
46 char *option = NULL; |
48 char *option = NULL; |
47 char optchar = 0; |
49 char optchar = 0; |
48 for(int i=0;i<argc;i++) { |
50 for(int i=0;i<argc;i++) { |
49 char *arg = argv[i]; |
51 char *arg = argv[i]; |
50 size_t len = strlen(arg); |
52 size_t len = strlen(arg); |
69 return NULL; |
75 return NULL; |
70 } |
76 } |
71 break; |
77 break; |
72 } |
78 } |
73 case 'p': { |
79 case 'p': { |
74 ucx_map_cstr_put(a->options, "plain", ""); |
80 ucx_map_cstr_put(a->options, "plain", NOARG); |
75 break; |
81 break; |
76 } |
82 } |
77 case 'c': { |
83 case 'c': { |
78 ucx_map_cstr_put(a->options, "crypt", ""); |
84 ucx_map_cstr_put(a->options, "crypt", NOARG); |
79 break; |
85 break; |
80 } |
86 } |
81 case 'a': { |
87 case 'a': { |
82 ucx_map_cstr_put(a->options, "all", ""); |
88 ucx_map_cstr_put(a->options, "all", NOARG); |
83 break; |
89 break; |
84 } |
90 } |
85 case 'l': { |
91 case 'l': { |
86 ucx_map_cstr_put(a->options, "list", ""); |
92 ucx_map_cstr_put(a->options, "list", NOARG); |
87 break; |
93 break; |
88 } |
94 } |
89 case 't': { |
95 case 't': { |
90 ucx_map_cstr_put(a->options, "type", ""); |
96 ucx_map_cstr_put(a->options, "type", NOARG); |
91 break; |
97 break; |
92 } |
98 } |
93 case 'R': { |
99 case 'R': { |
94 ucx_map_cstr_put(a->options, "recursive", ""); |
100 ucx_map_cstr_put(a->options, "recursive", NOARG); |
95 break; |
101 break; |
96 } |
102 } |
97 case 'o': { |
103 case 'o': { |
98 if(!option) { |
104 if(!option) { |
99 option = "output"; |
105 option = "output"; |