13e12c5d1SDavid du Colombier #include "mk.h"
23e12c5d1SDavid du Colombier
33e12c5d1SDavid du Colombier void
setvar(char * name,void * value)47dd7cddfSDavid du Colombier setvar(char *name, void *value)
53e12c5d1SDavid du Colombier {
6*4de34a7eSDavid du Colombier symlook(name, S_VAR, value)->u.ptr = value;
77dd7cddfSDavid du Colombier symlook(name, S_MAKEVAR, (void*)"");
83e12c5d1SDavid du Colombier }
93e12c5d1SDavid du Colombier
103e12c5d1SDavid du Colombier static void
print1(Symtab * s)113e12c5d1SDavid du Colombier print1(Symtab *s)
123e12c5d1SDavid du Colombier {
133e12c5d1SDavid du Colombier Word *w;
143e12c5d1SDavid du Colombier
157dd7cddfSDavid du Colombier Bprint(&bout, "\t%s=", s->name);
16*4de34a7eSDavid du Colombier for (w = s->u.ptr; w; w = w->next)
177dd7cddfSDavid du Colombier Bprint(&bout, "'%s'", w->s);
187dd7cddfSDavid du Colombier Bprint(&bout, "\n");
193e12c5d1SDavid du Colombier }
203e12c5d1SDavid du Colombier
213e12c5d1SDavid du Colombier void
dumpv(char * s)223e12c5d1SDavid du Colombier dumpv(char *s)
233e12c5d1SDavid du Colombier {
247dd7cddfSDavid du Colombier Bprint(&bout, "%s:\n", s);
253e12c5d1SDavid du Colombier symtraverse(S_VAR, print1);
263e12c5d1SDavid du Colombier }
273e12c5d1SDavid du Colombier
283e12c5d1SDavid du Colombier char *
shname(char * a)293e12c5d1SDavid du Colombier shname(char *a)
303e12c5d1SDavid du Colombier {
313e12c5d1SDavid du Colombier Rune r;
323e12c5d1SDavid du Colombier int n;
333e12c5d1SDavid du Colombier
343e12c5d1SDavid du Colombier while (*a) {
353e12c5d1SDavid du Colombier n = chartorune(&r, a);
363e12c5d1SDavid du Colombier if (!WORDCHR(r))
373e12c5d1SDavid du Colombier break;
383e12c5d1SDavid du Colombier a += n;
393e12c5d1SDavid du Colombier }
403e12c5d1SDavid du Colombier return a;
413e12c5d1SDavid du Colombier }
42