13 static int cmp(const void *a, const void *b)
15 const word *const *v = b;
16 const word *const *w = a;
17 return (strcmp(SYM_NAME(*w), SYM_NAME(*v)));
29 while (fgets(buf, sizeof(buf), stdin)) {
30 /* printf("+++ %s", buf); */
31 buf[strlen(buf) - 1] = 0;
34 if (strcmp(p, "set") == 0) {
35 char *k = strtok(0, " ");
36 int i = atoi(strtok(0, " "));
38 word *w = sym_find(&t, k, -1, sizeof(word), &f);
42 } else if (strcmp(p, "get") == 0) {
43 char *k = strtok(0, " ");
44 word *w = sym_find(&t, k, -1, 0, 0);
49 } else if (strcmp(p, "del") == 0) {
50 char *k = strtok(0, " ");
51 word *w = sym_find(&t, k, -1, 0, 0);
57 } else if (strcmp(p, "count") == 0) {
58 printf("%lu\n", (unsigned long)n);
59 } else if (strcmp(p, "show") == 0) {
67 v = malloc(n * sizeof(*v));
72 for (vv = v, sym_mkiter(&i, &t), j = 0;
73 (w = sym_next(&i)) != 0;
79 qsort(v, n, sizeof(*v), cmp);
80 printf("%s:%i", SYM_NAME(*v), (*v)->i);
81 for (vv = v + 1; --j; vv++)
82 printf(" %s:%i", SYM_NAME(*vv), (*vv)->i);
88 /* printf("--- %d\n", n); */