#include <stdlib.h>
#include <string.h>
+#include "macros.h"
#include "sym.h"
+#include "unihash.h"
typedef struct word {
sym_base _b;
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;
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) {
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;
if (!n)
puts("*EMPTY*");
else {
- v = malloc(n * sizeof(*v));
+ v = calloc(n, sizeof(*v));
if (!v) {
puts("*NOMEM*");
continue;