mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 17:51:01 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@391 72102866-910b-0410-8b05-ffd578937521
56 lines
1.2 KiB
Objective-C
56 lines
1.2 KiB
Objective-C
/* NSRange - range functions
|
|
|
|
*/
|
|
|
|
#include <Foundation/NSString.h>
|
|
|
|
NSRange
|
|
NSMakeRange(float location, float length)
|
|
{
|
|
NSRange range;
|
|
range.location = location;
|
|
range.length = length;
|
|
return range;
|
|
}
|
|
|
|
/* Query a Range */
|
|
BOOL
|
|
NSEqualRanges(NSRange range1, NSRange range2)
|
|
{
|
|
return ((range1.location == range2.location)
|
|
&& (range1.length == range2.length));
|
|
}
|
|
|
|
/* Compute a Range from Two Other Ranges */
|
|
NSRange
|
|
NSUnionRange(NSRange aRange, NSRange bRange)
|
|
{
|
|
NSRange range;
|
|
|
|
range.location = MIN(aRange.location, bRange.location);
|
|
range.length = MAX(NSMaxRange(aRange), NSMaxRange(bRange))
|
|
- range.location;
|
|
return range;
|
|
}
|
|
|
|
NSRange
|
|
NSIntersectionRange (NSRange aRange, NSRange bRange)
|
|
{
|
|
NSRange range;
|
|
|
|
if (NSMaxRange(aRange) < bRange.location
|
|
|| NSMaxRange(bRange) < aRange.location)
|
|
return NSMakeRange(0, 0);
|
|
|
|
range.location = MAX(aRange.location, bRange.location);
|
|
range.length = MIN(NSMaxRange(aRange), NSMaxRange(bRange))
|
|
- range.location;
|
|
return range;
|
|
}
|
|
|
|
NSString *
|
|
NSStringFromRange(NSRange range)
|
|
{
|
|
return [NSString stringWithFormat:@"{location = %d, length = %d}",
|
|
range.location, range.length];
|
|
}
|