Blame


1 76193d7c 2003-09-30 devnull #include "mk.h"
2 76193d7c 2003-09-30 devnull
3 76193d7c 2003-09-30 devnull void
4 3fe9465a 2006-04-20 devnull setvar(char *name, void *ptr)
5 76193d7c 2003-09-30 devnull {
6 3fe9465a 2006-04-20 devnull symlook(name, S_VAR, ptr)->u.ptr = ptr;
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 3fe9465a 2006-04-20 devnull for (w = s->u.ptr; 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 }