chiark / gitweb /
@@@ tty mess
[mLib] / struct / t / sym-test.c
index 8a9435f563ff2b1144cb0e8f16082e4121b28d95..5bbbff80d09b5ac60bda69108e4646ac8d038e1f 100644 (file)
@@ -3,7 +3,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "macros.h"
 #include "sym.h"
+#include "unihash.h"
 
 typedef struct word {
   sym_base _b;
@@ -31,7 +33,7 @@ int main(void)
     buf[strlen(buf) - 1] = 0;
     p = strtok(buf, " ");
 
-    if (strcmp(p, "set") == 0) {
+    if (STRCMP(p, ==, "set")) {
       char *k = strtok(0, " ");
       int i = atoi(strtok(0, " "));
       unsigned f;
@@ -39,14 +41,14 @@ int main(void)
       w->i = i;
       if (!f)
        n++;
-    } else if (strcmp(p, "get") == 0) {
+    } else if (STRCMP(p, ==, "get")) {
       char *k = strtok(0, " ");
       word *w = sym_find(&t, k, -1, 0, 0);
       if (w)
        printf("%i\n", w->i);
       else
        puts("*MISSING*");
-    } else if (strcmp(p, "del") == 0) {
+    } else if (STRCMP(p, ==, "del")) {
       char *k = strtok(0, " ");
       word *w = sym_find(&t, k, -1, 0, 0);
       if (w) {
@@ -54,9 +56,12 @@ int main(void)
        n--;
       } else
        puts("*MISSING*");
-    } else if (strcmp(p, "count") == 0) {
+    } else if (STRCMP(p, ==, "count")) {
       printf("%lu\n", (unsigned long)n);
-    } else if (strcmp(p, "show") == 0) {
+    } else if (STRCMP(p, ==, "seed")) {
+      char *k = strtok(0, " ");
+      unihash_setkey(&unihash_global, strtoul(k, 0, 0));
+    } else if (STRCMP(p, ==, "show")) {
       sym_iter i;
       word *w;
       word **v, **vv;
@@ -64,7 +69,7 @@ int main(void)
       if (!n)
        puts("*EMPTY*");
       else {
-       v = malloc(n * sizeof(*v));
+       v = calloc(n, sizeof(*v));
        if (!v) {
          puts("*NOMEM*");
          continue;