src/gedlib/equaliso.c
/*=========================================
 * equal_tree -- See if two trees are equal
 *=======================================*/
- See if two trees are equal
- See if two trees are equal
BOOLEAN
equal_tree (NODE root1,
            NODE root2)
{
	STRING str1, str2;
	if (!root1 && !root2) return TRUE;
	if (!root1 || !root2) return FALSE;
	if (length_nodes(root1) != length_nodes(root2)) return FALSE;
	while (root1) {
		if (nestr(ntag(root1), ntag(root2))) return FALSE;
		str1 = nval(root1);
		str2 = nval(root2);
		if (str1 && !str2) return FALSE;
		if (str2 && !str1) return FALSE;
		if (str1 && str2 && nestr(str1, str2)) return FALSE;
		if (!equal_tree(nchild(root1), nchild(root2))) return FALSE;
		root1 = nsibling(root1);
		root2 = nsibling(root2);
	}
	return TRUE;
}
BOOLEAN equal_tree ( NODE root1 , NODE root2 ) { STRING str1 , str2 ; if ( ! root1 && ! root2 ) return TRUE ; if ( ! root1 || ! root2 ) return FALSE ; if ( length_nodes ( root1 ) != length_nodes ( root2 ) ) return FALSE ; while ( root1 ) { if ( nestr ( ntag ( root1 ) , ntag ( root2 ) ) ) return FALSE ; str1 = nval ( root1 ) ; str2 = nval ( root2 ) ; if ( str1 && ! str2 ) return FALSE ; if ( str2 && ! str1 ) return FALSE ; if ( str1 && str2 && nestr ( str1 , str2 ) ) return FALSE ; if ( ! equal_tree ( nchild ( root1 ) , nchild ( root2 ) ) ) return FALSE ; root1 = nsibling ( root1 ) ; root2 = nsibling ( root2 ) ; } return TRUE ; }
equal_tree -- See if two trees are equal
equal_tree -- See if two trees are equal