15 static int cmp(const void *a, const void *b)
17 const word *const *v = b;
18 const word *const *w = a;
19 return (strcmp(SYM_NAME(*w), SYM_NAME(*v)));
31 while (fgets(buf, sizeof(buf), stdin)) {
32 /* printf("+++ %s", buf); */
33 buf[strlen(buf) - 1] = 0;
36 if (STRCMP(p, ==, "set")) {
37 char *k = strtok(0, " ");
38 int i = atoi(strtok(0, " "));
40 word *w = sym_find(&t, k, -1, sizeof(word), &f);
44 } else if (STRCMP(p, ==, "get")) {
45 char *k = strtok(0, " ");
46 word *w = sym_find(&t, k, -1, 0, 0);
51 } else if (STRCMP(p, ==, "del")) {
52 char *k = strtok(0, " ");
53 word *w = sym_find(&t, k, -1, 0, 0);
59 } else if (STRCMP(p, ==, "count")) {
60 printf("%lu\n", (unsigned long)n);
61 } else if (STRCMP(p, ==, "seed")) {
62 char *k = strtok(0, " ");
63 unihash_setkey(&unihash_global, strtoul(k, 0, 0));
64 } else if (STRCMP(p, ==, "show")) {
72 v = calloc(n, sizeof(*v));
77 for (vv = v, sym_mkiter(&i, &t), j = 0;
78 (w = sym_next(&i)) != 0;
84 qsort(v, n, sizeof(*v), cmp);
85 printf("%s:%i", SYM_NAME(*v), (*v)->i);
86 for (vv = v + 1; --j; vv++)
87 printf(" %s:%i", SYM_NAME(*vv), (*vv)->i);
93 /* printf("--- %d\n", n); */