mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-01 09:02:01 +00:00
Fix bug in returning array from completePathIntoString ...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3246 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
741b9677b0
commit
e2fb9ad2aa
1 changed files with 24 additions and 11 deletions
|
@ -748,14 +748,17 @@ handle_printf_atsign (FILE *stream,
|
||||||
|
|
||||||
/* xxx FIXME */
|
/* xxx FIXME */
|
||||||
- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet*)aSet
|
- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet*)aSet
|
||||||
options: (unsigned int)mask
|
options: (unsigned int)mask
|
||||||
range: (NSRange)aRange
|
range: (NSRange)aRange
|
||||||
{
|
{
|
||||||
int i, start, stop, step;
|
int i, start, stop, step;
|
||||||
NSRange range;
|
NSRange range;
|
||||||
|
|
||||||
/* xxx check to make sure aRange is within self; raise NSStringBoundsError */
|
i = [self length];
|
||||||
assert(NSMaxRange(aRange) <= [self length]);
|
if (aRange.location > i)
|
||||||
|
[NSException raise: NSRangeException format:@"Invalid location."];
|
||||||
|
if (aRange.length > (i - aRange.location))
|
||||||
|
[NSException raise: NSRangeException format:@"Invalid location+length."];
|
||||||
|
|
||||||
if ((mask & NSBackwardsSearch) == NSBackwardsSearch)
|
if ((mask & NSBackwardsSearch) == NSBackwardsSearch)
|
||||||
{
|
{
|
||||||
|
@ -1977,8 +1980,12 @@ else
|
||||||
{
|
{
|
||||||
int len, count;
|
int len, count;
|
||||||
|
|
||||||
/* xxx check to make sure aRange is within self; raise NSStringBoundsError */
|
len = [self cStringLength];
|
||||||
assert(NSMaxRange(aRange) <= [self cStringLength]);
|
if (aRange.location > len)
|
||||||
|
[NSException raise: NSRangeException format:@"Invalid location."];
|
||||||
|
if (aRange.length > (len - aRange.location))
|
||||||
|
[NSException raise: NSRangeException format:@"Invalid location+length."];
|
||||||
|
|
||||||
if (maxLength < aRange.length)
|
if (maxLength < aRange.length)
|
||||||
{
|
{
|
||||||
len = maxLength;
|
len = maxLength;
|
||||||
|
@ -2151,16 +2158,20 @@ else
|
||||||
// Manipulating File System Paths
|
// Manipulating File System Paths
|
||||||
|
|
||||||
- (unsigned int) completePathIntoString: (NSString**)outputName
|
- (unsigned int) completePathIntoString: (NSString**)outputName
|
||||||
caseSensitive: (BOOL)flag
|
caseSensitive: (BOOL)flag
|
||||||
matchesIntoArray: (NSArray**)outputArray
|
matchesIntoArray: (NSArray**)outputArray
|
||||||
filterTypes: (NSArray*)filterTypes
|
filterTypes: (NSArray*)filterTypes
|
||||||
{
|
{
|
||||||
NSString * base_path = [self stringByDeletingLastPathComponent];
|
NSString * base_path = [self stringByDeletingLastPathComponent];
|
||||||
NSString * last_compo = [self lastPathComponent];
|
NSString * last_compo = [self lastPathComponent];
|
||||||
NSString * tmp_path;
|
NSString * tmp_path;
|
||||||
NSDirectoryEnumerator * e;
|
NSDirectoryEnumerator * e;
|
||||||
|
NSMutableArray *op;
|
||||||
int match_count = 0;
|
int match_count = 0;
|
||||||
|
|
||||||
|
if (outputArray != 0)
|
||||||
|
op = (NSMutableArray*)[NSMutableArray array];
|
||||||
|
|
||||||
if (outputName != NULL) *outputName = nil;
|
if (outputName != NULL) *outputName = nil;
|
||||||
|
|
||||||
if ([base_path length] == 0) base_path = @".";
|
if ([base_path length] == 0) base_path = @".";
|
||||||
|
@ -2189,12 +2200,14 @@ else
|
||||||
/* Found a completion */
|
/* Found a completion */
|
||||||
match_count++;
|
match_count++;
|
||||||
if (outputArray != NULL)
|
if (outputArray != NULL)
|
||||||
[*outputArray addObject: tmp_path];
|
[*op addObject: tmp_path];
|
||||||
|
|
||||||
if ((outputName != NULL) &&
|
if ((outputName != NULL) &&
|
||||||
((*outputName == nil) || (([*outputName length] < [tmp_path length]))))
|
((*outputName == nil) || (([*outputName length] < [tmp_path length]))))
|
||||||
*outputName = tmp_path;
|
*outputName = tmp_path;
|
||||||
}
|
}
|
||||||
|
if (outputArray != NULL)
|
||||||
|
*outputArray = [[op copy] autorelease];
|
||||||
return match_count;
|
return match_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue