diff options
Diffstat (limited to 'quadnames.c')
-rw-r--r-- | quadnames.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/quadnames.c b/quadnames.c index 093a234..8ce54e1 100644 --- a/quadnames.c +++ b/quadnames.c @@ -27,6 +27,23 @@ QuadnameDef quadnames[] = { {nil, 0, nil, nil, nil, nil} /* MUST BE LAST */ }; +void +initquadnames(void) +{ + Symbol *s; + QuadnameDef q; + int i; + for(i = 0; quadnames[i].name != nil; i++){ + q = quadnames[i]; + if(q.tag == NameTag){ + s = getsym(q.name, 1); + s->getfn = q.get; + s->setfn = q.set; + s->undefined = 0; + } + } +} + Datum quadnamedatum(QuadnameDef q) { @@ -34,10 +51,7 @@ quadnamedatum(QuadnameDef q) d.tag = q.tag; switch(q.tag){ case NameTag: - d.symbol = getsym(q.name, 0); - d.symbol->getfn = q.get; - d.symbol->setfn = q.set; - d.symbol->undefined = 0; + d.name = q.name; break; case FunctionTag: d.func.type = FunctypeQuad; |