| var.c - 9base - revived minimalist port of Plan 9 userland to Unix | |
| git clone git://git.suckless.org/9base | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| var.c (524B) | |
| --- | |
| 1 #include "mk.h" | |
| 2 | |
| 3 void | |
| 4 setvar(char *name, void *ptr) | |
| 5 { | |
| 6 symlook(name, S_VAR, ptr)->u.ptr = ptr; | |
| 7 symlook(name, S_MAKEVAR, (void*)""); | |
| 8 } | |
| 9 | |
| 10 static void | |
| 11 print1(Symtab *s) | |
| 12 { | |
| 13 Word *w; | |
| 14 | |
| 15 Bprint(&bout, "\t%s=", s->name); | |
| 16 for (w = s->u.ptr; w; w = w->next) | |
| 17 Bprint(&bout, "'%s'", w->s); | |
| 18 Bprint(&bout, "\n"); | |
| 19 } | |
| 20 | |
| 21 void | |
| 22 dumpv(char *s) | |
| 23 { | |
| 24 Bprint(&bout, "%s:\n", s); | |
| 25 symtraverse(S_VAR, print1); | |
| 26 } | |
| 27 | |
| 28 char * | |
| 29 shname(char *a) | |
| 30 { | |
| 31 Rune r; | |
| 32 int n; | |
| 33 | |
| 34 while (*a) { | |
| 35 n = chartorune(&r, a); | |
| 36 if (!WORDCHR(r)) | |
| 37 break; | |
| 38 a += n; | |
| 39 } | |
| 40 return a; | |
| 41 } |