DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T a

⟦c04072f9f⟧ TextFile

    Length: 2968 (0xb98)
    Types: TextFile
    Names: »attrt.c«

Derivation

└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
    └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« 
        └─⟦d3ac74d73⟧ 
            └─⟦this⟧ »isode-5.0/dsap/common/attrt.c« 

TextFile

/* 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));
}