RangeMap.cxx revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifndef RangeMap_DEF_INCLUDED
#define RangeMap_DEF_INCLUDED 1
#include "RangeMap.h"
#include "ISet.h"
#include "types.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
{
}
{
// FIXME use binary search
return 1;
}
return 0;
}
}
return 0;
}
{
// FIXME use binary search
unsigned ret = 0;
if (ret > 1) {
}
else if (ret == 1) {
ret = 2;
}
else {
from = n;
ret = 1;
}
}
}
return ret;
}
{
}
// If the new range overlaps an existing one, the new
// one takes precedence.
{
// FIXME use binary search
size_t i;
break;
// fromMin <= ranges[i].fromMax
if (i > 0
// coalesce with previous
i--;
coalesced = 1;
}
// overlap
return;
coalesced = 1;
}
}
else {
// fromMin > ranges_[i].fromMin
return;
coalesced = 1;
}
}
}
if (!coalesced) {
// insert
}
// Delete overlapping ranges starting at i + 1.
size_t j;
break;
}
}
if (j > i + 1) {
// delete i + 1 ... j - 1
// j -> i + 1
// j - 1 -> i + 2
}
}
#ifdef SP_NAMESPACE
}
#endif
#endif /* not RangeMap_DEF_INCLUDED */