mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
Initial revision
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@251 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
22e393a66e
commit
d4146fe499
21 changed files with 1999 additions and 0 deletions
56
Source/NSRange.m
Normal file
56
Source/NSRange.m
Normal file
|
@ -0,0 +1,56 @@
|
|||
/* 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];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue