Blame


1 76193d7c 2003-09-30 devnull #include "mk.h"
2 76193d7c 2003-09-30 devnull
3 76193d7c 2003-09-30 devnull void
4 76193d7c 2003-09-30 devnull setvar(char *name, void *value)
5 76193d7c 2003-09-30 devnull {
6 76193d7c 2003-09-30 devnull symlook(name, S_VAR, value)->value = value;
7 76193d7c 2003-09-30 devnull symlook(name, S_MAKEVAR, (void*)"");
8 76193d7c 2003-09-30 devnull }
9 76193d7c 2003-09-30 devnull
10 76193d7c 2003-09-30 devnull static void
11 76193d7c 2003-09-30 devnull print1(Symtab *s)
12 76193d7c 2003-09-30 devnull {
13 76193d7c 2003-09-30 devnull Word *w;
14 76193d7c 2003-09-30 devnull
15 76193d7c 2003-09-30 devnull Bprint(&bout, "\t%s=", s->name);
16 76193d7c 2003-09-30 devnull for (w = (Word *) s->value; w; w = w->next)
17 76193d7c 2003-09-30 devnull Bprint(&bout, "'%s'", w->s);
18 76193d7c 2003-09-30 devnull Bprint(&bout, "\n");
19 76193d7c 2003-09-30 devnull }
20 76193d7c 2003-09-30 devnull
21 76193d7c 2003-09-30 devnull void
22 76193d7c 2003-09-30 devnull dumpv(char *s)
23 76193d7c 2003-09-30 devnull {
24 76193d7c 2003-09-30 devnull Bprint(&bout, "%s:\n", s);
25 76193d7c 2003-09-30 devnull symtraverse(S_VAR, print1);
26 76193d7c 2003-09-30 devnull }
27 76193d7c 2003-09-30 devnull
28 76193d7c 2003-09-30 devnull char *
29 76193d7c 2003-09-30 devnull shname(char *a)
30 76193d7c 2003-09-30 devnull {
31 76193d7c 2003-09-30 devnull Rune r;
32 76193d7c 2003-09-30 devnull int n;
33 76193d7c 2003-09-30 devnull
34 76193d7c 2003-09-30 devnull while (*a) {
35 76193d7c 2003-09-30 devnull n = chartorune(&r, a);
36 76193d7c 2003-09-30 devnull if (!WORDCHR(r))
37 76193d7c 2003-09-30 devnull break;
38 76193d7c 2003-09-30 devnull a += n;
39 76193d7c 2003-09-30 devnull }
40 76193d7c 2003-09-30 devnull return a;
41 76193d7c 2003-09-30 devnull }