summaryrefslogtreecommitdiff
path: root/quadnames.c
diff options
context:
space:
mode:
Diffstat (limited to 'quadnames.c')
-rw-r--r--quadnames.c22
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;