Annotation of 43BSDReno/contrib/isode-beta/dsap/common/tree_struct.c, revision 1.1.1.1

1.1       root        1: /* tree_struct.c - Tree Structure utility routines */
                      2: 
                      3: #ifndef lint
                      4: static char *rcsid = "$Header: /f/osi/dsap/common/RCS/tree_struct.c,v 7.1 90/03/15 11:17:42 mrose Exp $";
                      5: #endif
                      6: 
                      7: /*
                      8:  * $Header: /f/osi/dsap/common/RCS/tree_struct.c,v 7.1 90/03/15 11:17:42 mrose Exp $
                      9:  *
                     10:  *
                     11:  * $Log:       tree_struct.c,v $
                     12:  * Revision 7.1  90/03/15  11:17:42  mrose
                     13:  * quipu-sync
                     14:  * 
                     15:  * Revision 7.0  89/11/23  21:44:39  mrose
                     16:  * Release 6.0
                     17:  * 
                     18:  */
                     19: 
                     20: /*
                     21:  *                                NOTICE
                     22:  *
                     23:  *    Acquisition, use, and distribution of this module and related
                     24:  *    materials are subject to the restrictions of a license agreement.
                     25:  *    Consult the Preface in the User's Manual for the full terms of
                     26:  *    this agreement.
                     27:  *
                     28:  */
                     29: 
                     30: 
                     31: /* LINTLIBRARY */
                     32: 
                     33: #include "quipu/util.h"
                     34: #include "quipu/entry.h"
                     35: 
                     36: extern int oidformat;
                     37: 
                     38: /* ARGSUSED */
                     39: static tree_struct_free (ptr)
                     40: struct tree_struct * ptr;
                     41: {
                     42:        /* don't free objectclass - in static table */
                     43:        ;
                     44: }
                     45: 
                     46: 
                     47: static struct tree_struct * tree_struct_cpy (a)
                     48: struct tree_struct * a;
                     49: {
                     50: struct tree_struct * result;
                     51: 
                     52:        result = tree_struct_alloc ();
                     53:        result->tree_object = a->tree_object;
                     54:        return (result);
                     55: }
                     56: 
                     57: static tree_struct_cmp (a,b)
                     58: struct tree_struct * a, *b;
                     59: {
                     60:        if (a == NULLTREE)
                     61:                return (b==NULLTREE ? 0 : -1 );
                     62: 
                     63:        if (b == NULLTREE)
                     64:                return (1);
                     65: 
                     66:        return (  objclass_cmp(a->tree_object,b->tree_object));
                     67: }
                     68: 
                     69: 
                     70: /* ARGSUSED */
                     71: static tree_struct_print (ps,tree,format)
                     72: register PS ps;
                     73: struct   tree_struct * tree;
                     74: int format;
                     75: {
                     76:        ps_printf (ps,"%s",oc2name(tree->tree_object,oidformat));
                     77: }
                     78: 
                     79: 
                     80: static struct tree_struct * str2schema (str)
                     81: char * str;
                     82: {
                     83: struct tree_struct * ts;
                     84: objectclass * str2oc();
                     85: 
                     86:        ts = tree_struct_alloc ();
                     87:        if ((ts->tree_object = str2oc(str)) == NULLOBJECTCLASS) {
                     88:                parse_error ("invalid oid in schema '%s'",str);
                     89:                free ((char *) ts);
                     90:                return (NULLTREE);
                     91:        }
                     92:        return (ts);
                     93: }
                     94: 
                     95: static PE ts_enc (ts)
                     96: struct tree_struct * ts;
                     97: {
                     98: PE ret_pe;
                     99: 
                    100:         (void) encode_Quipu_TreeStructureSyntax(&ret_pe,0,0,NULLCP,ts);
                    101: 
                    102:        return (ret_pe);
                    103: }
                    104: 
                    105: static struct tree_struct * ts_dec (pe)
                    106: PE pe;
                    107: {
                    108: struct tree_struct * ts;
                    109: 
                    110:        if (decode_Quipu_TreeStructureSyntax(pe,1,NULLIP,NULLVP,&ts) == NOTOK) 
                    111:                return (struct tree_struct *)NULL;
                    112: 
                    113:        return (ts);
                    114: }
                    115: 
                    116: schema_syntax ()
                    117: {
                    118:        (void) add_attribute_syntax ("schema",
                    119:                (IFP) ts_enc,           (IFP) ts_dec,
                    120:                (IFP) str2schema,       tree_struct_print,
                    121:                (IFP) tree_struct_cpy,  tree_struct_cmp,
                    122:                tree_struct_free,       NULLCP,
                    123:                NULLIFP,                FALSE );
                    124: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.