ref: 595fbddb1c9e152d9080d7b0faa301709fa6466d
dir: /sys/src/cmd/mk/var.c/
#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; }