Net2/usr/src/contrib/isode/dsap/common/dn_cmp.c

Compare this file to the similar file:
Show the results in this format:

#include "quipu/util.h"
#include "quipu/name.h"

dn_cmp (a,b)
register DN  a,b;
{
int res;

	for (; (a != NULLDN) && (b != NULLDN) ; a = a->dn_parent, b = b->dn_parent)
		if ( (res = rdn_cmp (a->dn_rdn,b->dn_rdn)) != OK) {
			return res;
		}

	if (( a == NULLDN) && (b == NULLDN)) {
		return OK;
	} else {
		return ( a == NULLDN ? 1 : -1 );
	}

}

dn_cmp_prefix (a,b)
register DN  a,b;
{
	for (; a != NULLDN && b != NULLDN ; a = a->dn_parent, b = b->dn_parent)
		if ( dn_comp_cmp (a,b) == NOTOK) {
			return NOTOK;
		}

	if ( a == NULLDN) {
		return OK;
	} else {
		return NOTOK;
	}

}

dn_order_cmp (a,b)
register DN  a,b;
{
        int     i;

        for ( ; (a != NULLDN) && (b != NULLDN); a = a->dn_parent,
            b = b->dn_parent ) {
                if ( (i = rdn_cmp( a->dn_rdn, b->dn_rdn )) != 0 ) {
                        return( i );
                }
        }

        if ( ( a == NULLDN) && (b == NULLDN) ) {
                return( 0 );
        } else if ( b ) {       /* b longer, so a is less */
                return( -1 );
        } else {                /* a must be longer */
                return( 1 );
        }
        /* NOTREACHED */
}