diff --git a/ChangeLog b/ChangeLog index 301661399..5c9fda290 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-02 Richard Frith-Macdonald + + * Source/NSIndexSet.m: Implement ([-countOfIndexesInRange:]) + 2008-06-30 Richard Frith-Macdonald * Source/GSFFIInvocation.m: diff --git a/Source/NSIndexSet.m b/Source/NSIndexSet.m index 277cc5b74..8794adbdc 100644 --- a/Source/NSIndexSet.m +++ b/Source/NSIndexSet.m @@ -234,7 +234,26 @@ static unsigned posForIndex(GSIArray array, unsigned index) - (NSUInteger) countOfIndexesInRange: (NSRange)range { - return 0; + if (_array == 0 || GSIArrayCount(_array) == 0) + { + return 0; + } + else + { + unsigned count = GSIArrayCount(_array); + unsigned total = 0; + unsigned i = 0; + + while (i < count) + { + NSRange r = GSIArrayItemAtIndex(_array, i).ext; + + r = NSIntersectionRange(r, range); + total += r.length; + i++; + } + return total; + } } - (void) dealloc