commit - c9ee9e62f63bb875d2e49c455cbba97fc471b814
commit + 3fe9465ac99f9aa3a23f71f01df9e097f0c1da87
blob - 521ef7a7d90564d89bb4e2741c02727fcc18d3a5
blob + 5e0267ff8cfc26a9704a439c0625d63f84c04999
--- src/cmd/mk/arc.c
+++ src/cmd/mk/arc.c
sym = symlook("NREP", S_VAR, 0);
if(sym){
- w = (Word *) sym->value;
+ w = sym->u.ptr;
if (w && w->s && *w->s)
nreps = atoi(w->s);
}
blob - 9955b3fd9c9eda9e0399555119cc11f4694a6299
blob + 01288908f8d8ffbb632eb153f4cd41107aeaa331
--- src/cmd/mk/archive.c
+++ src/cmd/mk/archive.c
t = mtime(archive);
sym = symlook(archive, S_AGG, 0);
if(sym){
- if(force || (t > (long)sym->value)){
+ if(force || (t > sym->u.value)){
atimes(archive);
- sym->value = (void *)t;
+ sym->u.value = t;
}
}
else{
atimes(archive);
/* mark the aggegate as having been done */
- symlook(strdup(archive), S_AGG, "")->value = (void *)t;
+ symlook(strdup(archive), S_AGG, "")->u.value = t;
}
/* truncate long member name to sizeof of name field in archive header */
if(dolong)
snprint(buf, sizeof(buf), "%s(%.*s)", archive, SARNAME, member);
sym = symlook(buf, S_TIME, 0);
if (sym)
- return (long)sym->value; /* uggh */
+ return sym->u.value;
return 0;
}
}
snprint(buf, sizeof buf, "%s(%s)", ar, name);
sym = symlook(strdup(buf), S_TIME, (void *)t);
- sym->value = (void *)t;
+ sym->u.value = t;
skip:
t = atol(h.size);
if(t&01) t++;
blob - ffb2762e75e30f59f549007cd3ee8c9a785b1247
blob + 11df34e31051127ecc860caeeeb079dce3e24498
--- src/cmd/mk/env.c
+++ src/cmd/mk/env.c
for(p = myenv; *p; p++)
if(strcmp(*p, s->name) == 0)
return;
- envinsert(s->name, (Word *) s->value);
+ envinsert(s->name, s->u.ptr);
}
void
blob - 2533343fd8ddabab29e513918c7f0e53bb0c3c35
blob + d9409ba7a5cce5047aae2db964e1849bc6caf9db
--- src/cmd/mk/file.c
+++ src/cmd/mk/file.c
sym = symlook(name, S_TIME, 0);
if (sym)
- return (long) sym->value; /* uggh */
+ return sym->u.value;
t = mtime(name);
if(t == 0)
} while(*s);
c = *s;
*s = 0;
- symlook(strdup(cp), S_TIME, (void *)t)->value = (void *)t;
+ symlook(strdup(cp), S_TIME, (void *)t)->u.value = t;
if (c)
*s++ = c;
while(*s){
blob - da346c0345bac3bdb5421017ad00b84b4c9cdd00
blob + 4c46f7bb922f04452b6580af746aaae05744a9fc
--- src/cmd/mk/graph.c
+++ src/cmd/mk/graph.c
/* print("applyrules(%lux='%s')\n", target, target); */
sym = symlook(target, S_NODE, 0);
if(sym)
- return (Node *)(sym->value);
+ return sym->u.ptr;
target = strdup(target);
node = newnode(target);
head.n = 0;
head.next = 0;
sym = symlook(target, S_TARGET, 0);
memset((char*)rmatch, 0, sizeof(rmatch));
- for(r = sym? (Rule *)(sym->value):0; r; r = r->chain){
+ for(r = sym? sym->u.ptr:0; r; r = r->chain){
if(r->attr&META) continue;
if(strcmp(target, r->target)) continue;
if((!r->recipe || !*r->recipe) && (!r->tail || !r->tail->s || !*r->tail->s)) continue; /* no effect; ignore */
blob - 5ae4fc214309bbd103137c386cdf8c153045b368
blob + 654d063496c03c82ffbd581343c49714457bcba4
--- src/cmd/mk/mk.c
+++ src/cmd/mk/mk.c
str = strdup(buf);
ret = pcmp(arc->prog, node->name, arc->n->name, arc->r->shellt, arc->r->shellcmd);
if(sym)
- sym->value = (void *)ret;
+ sym->u.value = ret;
else
symlook(str, S_OUTOFDATE, (void *)ret);
} else
- ret = (int)sym->value;
+ ret = sym->u.value;
return(ret-1);
} else if(strchr(arc->n->name, '(') && arc->n->time == 0) /* missing archive member */
return 1;
blob - 81f9d70c5232014cb6a7b7c82e613c567a18b85e
blob + a40e9ded8078ffe24f17e9b41830f41c191d87fc
--- src/cmd/mk/mk.h
+++ src/cmd/mk/mk.h
{
short space;
char *name;
- void *value;
+ union {
+ void *ptr;
+ uintptr value;
+ } u;
struct Symtab *next;
} Symtab;
blob - bf7f8ab1e8a865d23ea513f2338770c0e3988878
blob + 7993e091b69c77a7de0c30a28e0670ce4a1796cd
--- src/cmd/mk/recipe.c
+++ src/cmd/mk/recipe.c
aw = aw->next;
if((s = symlook(buf, S_NODE, 0)) == 0)
continue; /* not a node we are interested in */
- n = (Node *)s->value;
+ n = s->u.ptr;
if(aflag == 0 && n->time) {
for(a = n->prereqs; a; a = a->next)
if(a->n && outofdate(n, a, 0))
blob - d73595d2614c113977806f2d5b7e82ff3b544ff7
blob + 439d611483ef1c1f220d0ddd32b0edfa21edfdba
--- src/cmd/mk/rule.c
+++ src/cmd/mk/rule.c
r = 0;
reuse = 0;
if(sym = symlook(head, S_TARGET, 0)){
- for(r = (Rule *)sym->value; r; r = r->chain)
+ for(r = sym->u.ptr; r; r = r->chain)
if(rcmp(r, head, tail) == 0){
reuse = 1;
break;
r->prog = prog;
r->rule = nrules++;
if(!reuse){
- rr = (Rule *)symlook(head, S_TARGET, (void *)r)->value;
+ rr = symlook(head, S_TARGET, (void *)r)->u.ptr;
if(rr != r){
r->chain = rr->chain;
rr->chain = r;
blob - 439cc0a5c85fee67304c6b05ea25b63c00eed081
blob + dd225c0d0be0936b6ded1823e79481ebe867d7e8
--- src/cmd/mk/run.c
+++ src/cmd/mk/run.c
for(w = j->t; w; w = w->next){
if((s = symlook(w->s, S_NODE, 0)) == 0)
continue; /* not interested in this node */
- update(uarg, (Node *)s->value);
+ update(uarg, s->u.ptr);
}
if(nrunning < nproclimit)
sched();
Word *w;
if(sym = symlook("NPROC", S_VAR, 0)) {
- w = (Word *) sym->value;
+ w = sym->u.ptr;
if (w && w->s && w->s[0])
nproclimit = atoi(w->s);
}
blob - 06a4d146563e8d41747ebb7fd88fff4f7d82eb4a
blob + 17674c437b10c8ca383ea3f423f3e8e14f10c953
--- src/cmd/mk/symtab.c
+++ src/cmd/mk/symtab.c
s = (Symtab *)Malloc(sizeof(Symtab));
s->space = space;
s->name = sym;
- s->value = install;
+ s->u.ptr = install;
s->next = hash[h];
hash[h] = s;
return(s);
blob - 7ecce69fa2b83e3a3c50c4046c8065b1ed991bbe
blob + c63d3cefd0246d4644ba8a9e2758eb349beea255
--- src/cmd/mk/unix.c
+++ src/cmd/mk/unix.c
continue;
s = strdup(*p);
setvar(s, (void *)w);
- symlook(s, S_EXPORTED, (void*)"")->value = (void*)"";
+ symlook(s, S_EXPORTED, (void*)"")->u.ptr = "";
}
}
blob - 8429918d57093e0a2d27cf1262f086df04588923
blob + 3efe3827836e8171774fc2ccc6765b2314f1f44c
--- src/cmd/mk/var.c
+++ src/cmd/mk/var.c
#include "mk.h"
void
-setvar(char *name, void *value)
+setvar(char *name, void *ptr)
{
- symlook(name, S_VAR, value)->value = value;
+ symlook(name, S_VAR, ptr)->u.ptr = ptr;
symlook(name, S_MAKEVAR, (void*)"");
}
Word *w;
Bprint(&bout, "\t%s=", s->name);
- for (w = (Word *) s->value; w; w = w->next)
+ for (w = s->u.ptr; w; w = w->next)
Bprint(&bout, "'%s'", w->s);
Bprint(&bout, "\n");
}
blob - 5b7c984a72529dd3fec588acabe3c464ac19d051
blob + 223ba78dfd812344a02bfb0b31897d9b0e6ca907
--- src/cmd/mk/varsub.c
+++ src/cmd/mk/varsub.c
sym = symlook(name, S_VAR, 0);
if(sym){
/* check for at least one non-NULL value */
- for (w = (Word*)sym->value; w; w = w->next)
+ for (w = sym->u.ptr; w; w = w->next)
if(w->s && *w->s)
return wdup(w);
}
*s = end+1;
sym = symlook(buf->start, S_VAR, 0);
- if(sym == 0 || sym->value == 0)
+ if(sym == 0 || sym->u.ptr == 0)
w = newword(buf->start);
else
- w = subsub((Word*) sym->value, cp, end);
+ w = subsub(sym->u.ptr, cp, end);
freebuf(buf);
return w;
}