|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T a
Length: 2968 (0xb98) Types: TextFile Names: »attrt.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/dsap/common/attrt.c«
/* attrt.c - Attribute Type routines */ #ifndef lint static char *rcsid = "$Header: /f/osi/dsap/common/RCS/attrt.c,v 6.0 89/03/18 23:27:22 mrose Rel $"; #endif /* * $Header: /f/osi/dsap/common/RCS/attrt.c,v 6.0 89/03/18 23:27:22 mrose Rel $ * * * $Log: attrt.c,v $ * Revision 6.0 89/03/18 23:27:22 mrose * Release 5.0 * */ /* * NOTICE * * Acquisition, use, and distribution of this module and related * materials are subject to the restrictions of a license agreement. * Consult the Preface in the User's Manual for the full terms of * this agreement. * */ /* LINTLIBRARY */ #include "quipu/util.h" #include "quipu/name.h" extern int oidformat; extern LLog * log_dsap; AttributeType last_at; AttrT_free (x) register AttributeType x; { if (x == NULLAttrT) return; if ( x -> at_table == NULLTABLE_ATTR ) oid_free (x->at_oid); free ((char *) x); } AttributeType AttrT_new (name) register char * name; { register AttributeType y; y = (AttributeType) smalloc (sizeof (attrType)); y -> at_oid = NULLOID; if ((y -> at_table = name2attr (name)) == NULLTABLE_ATTR) { AttrT_free (y); return (NULLAttrT); } return (y); } AttrT_decode (x) register AttributeType x; { if (x->at_table != NULLTABLE_ATTR) return; if (x->at_oid == NULLOID) { LLOG (log_dsap,LLOG_EXCEPTIONS,("Null oid to decode")); return; } if ((x->at_table = oid2attr (x->at_oid)) == NULLTABLE_ATTR) { LLOG (log_dsap,LLOG_EXCEPTIONS,("Unknown attribute type oid")); return; } oid_free (x->at_oid); x->at_oid = NULLOID; } AttributeType AttrT_cpy (x) register AttributeType x; { register AttributeType y; if (x == NULLAttrT) return(NULLAttrT); if (x->at_table == NULLTABLE_ATTR) AttrT_decode(x); y = (AttributeType) smalloc (sizeof (attrType)); if (x->at_oid != NULLOID) y -> at_oid = oid_cpy(x->at_oid); else y -> at_oid = NULLOID; y -> at_table = x->at_table; return (y); } AttrT_cmp (x,y) register AttributeType x,y; { if ( x == NULLAttrT ) return (y ? -1 : 0); if ( y == NULLAttrT ) return (1); if (x->at_table == NULLTABLE_ATTR) AttrT_decode(x); if (y->at_table == NULLTABLE_ATTR) AttrT_decode(y); if ((x->at_table == NULLTABLE_ATTR) && (x->at_table == NULLTABLE_ATTR)) /* not in tables */ return (quipu_oid_cmp (x->at_oid,y->at_oid)); if (x->at_table == y->at_table) return (0); return ((x->at_table > y->at_table) ? 1 : -1); } AttrT_print (ps,x,format) register PS ps; register AttributeType x; register int format; { char * attr2name_aux(); if (x == NULLAttrT) { ps_print(ps,"Unknown Type"); return; } last_at = x; if (x->at_table == NULLTABLE_ATTR) AttrT_decode(x); if (x->at_table == NULLTABLE_ATTR) { /* can't decode */ ps_printf (ps,"%s",oid2name (x->at_oid,oidformat)); return; } if (format == READOUT) ps_printf (ps,"%s",attr2name (x->at_table,oidformat)); else ps_printf (ps,"%s",attr2name_aux (x->at_table)); }