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); */