-
-static ID idl_first( ID *ids, ID *cursor )
-{
- ID pos;
-
- if ( ids[0] == 0 ) {
- *cursor = NOID;
- return NOID;
- }
-
- if ( BDB_IDL_IS_RANGE( ids ) ) {
- if( *cursor < ids[1] ) {
- *cursor = ids[1];
- }
- return *cursor;
- }
-
- pos = bdb_idl_search( ids, *cursor );
-
- if( pos > ids[0] ) {
- return NOID;
- }
-
- *cursor = pos;
- return ids[pos];
-}
-
-static ID idl_next( ID *ids, ID *cursor )
-{
- if ( BDB_IDL_IS_RANGE( ids ) ) {
- if( ids[2] < ++(*cursor) ) {
- return NOID;
- }
- return *cursor;
- }
-
- if ( *cursor < ids[0] ) {
- return ids[(*cursor)++];
- }
-
- return NOID;
-}
-