#include        "mk.h"

void
setvar(char *name, void *value)
{
       symlook(name, S_VAR, value)->u.ptr = value;
       symlook(name, S_MAKEVAR, (void*)"");
}

static void
print1(Symtab *s)
{
       Word *w;

       Bprint(&bout, "\t%s=", s->name);
       for (w = s->u.ptr; w; w = w->next)
               Bprint(&bout, "'%s'", w->s);
       Bprint(&bout, "\n");
}

void
dumpv(char *s)
{
       Bprint(&bout, "%s:\n", s);
       symtraverse(S_VAR, print1);
}

char *
shname(char *a)
{
       Rune r;
       int n;

       while (*a) {
               n = chartorune(&r, a);
               if (!WORDCHR(r))
                       break;
               a += n;
       }
       return a;
}