dav/sopt.c

changeset 747
efbd59642577
parent 533
5b9f20aa88c2
--- a/dav/sopt.c	Sun Apr 16 14:12:24 2023 +0200
+++ b/dav/sopt.c	Fri Apr 21 21:25:32 2023 +0200
@@ -32,17 +32,23 @@
 
 #include "sopt.h"
 
+#include <cx/hash_map.h>
+
 void cmd_args_free(CmdArgs *args) {
     if(args) {
-        ucx_map_free(args->options);
+        cxMapDestroy(args->options);
         free(args->argv);
         free(args);
     }
 }
 
+static void cmd_map_put(CxMap *map, const char *key, const void *value) {
+    cxMapPut(map, key, (void*)value);
+}
+
 CmdArgs* cmd_parse_args(int argc, char **argv) {
     CmdArgs *a = malloc(sizeof(CmdArgs));
-    a->options = ucx_map_new(16);
+    a->options = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 16);
     a->argv = calloc(argc, sizeof(char*));
     a->argc = 0;
     
@@ -62,23 +68,23 @@
                         return NULL;
                     }
                     case 'c': {
-                        ucx_map_cstr_put(a->options, "conflict", NOARG);
+                        cmd_map_put(a->options, "conflict", NOARG);
                         break;
                     }
                     case 'l': {
-                        ucx_map_cstr_put(a->options, "lock", NOARG);
+                        cmd_map_put(a->options, "lock", NOARG);
                         break;
                     }
                     case 'd': {
-                        ucx_map_cstr_put(a->options, "nolock", NOARG);
+                        cmd_map_put(a->options, "nolock", NOARG);
                         break;
                     }
                     case 'r': {
-                        ucx_map_cstr_put(a->options, "remove", NOARG);
+                        cmd_map_put(a->options, "remove", NOARG);
                         break;
                     }
                     case 'v': {
-                        ucx_map_cstr_put(a->options, "verbose", NOARG);
+                        cmd_map_put(a->options, "verbose", NOARG);
                         break;
                     }
                     case 's': {
@@ -97,20 +103,20 @@
                         break;
                     }
                     case 'R': {
-                        ucx_map_cstr_put(a->options, "restore-removed", NOARG);
+                        cmd_map_put(a->options, "restore-removed", NOARG);
                         break;
                     }
                     case 'M': {
-                        ucx_map_cstr_put(a->options, "restore-modified", NOARG);
+                        cmd_map_put(a->options, "restore-modified", NOARG);
                         break;
                     }
                     case 'S': {
-                        ucx_map_cstr_put(a->options, "snapshot", NOARG);
+                        cmd_map_put(a->options, "snapshot", NOARG);
                     }
                 }
             }
         } else if(option) {
-            ucx_map_cstr_put(a->options, option, arg);
+            cmd_map_put(a->options, option, arg);
             option = NULL;
         } else {
             a->argv[a->argc++] = arg;
@@ -120,6 +126,6 @@
     return a;
 }
 
-char* cmd_getoption(CmdArgs *arg, char *name) {
-    return ucx_map_cstr_get(arg->options, name);
+char* cmd_getoption(CmdArgs *arg, const char *name) {
+    return cxMapGet(arg->options, cx_hash_key_str(name));
 }

mercurial