Bundle match fix

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@6761 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2000-06-21 15:25:30 +00:00
parent 7fb5abafdb
commit 7d97016299
2 changed files with 14 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2000-06-19 Adam Fedor <fedor@gnu.org>
* Source/NSBundle.m (_bundle_name_first_match): Work even when
filename has a directory component. (patch from Julian van
Greunen <vangrn@lantic.co.za>).
2000-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSScanner.m: ([-scanHexInt:]) fixed to permit leading 0x or 0X

View file

@ -183,14 +183,17 @@ _bundle_name_first_match(NSString* directory, NSString* name)
{
NSFileManager *mgr = [NSFileManager defaultManager];
NSEnumerator *filelist;
NSString *path, *match;
NSString *path, *match, *cleanname;
path = [directory stringByAppendingPathComponent: name];
filelist = [[mgr directoryContentsAtPath: directory] objectEnumerator];
/* name might have a directory in it also, so account for this */
path = [[directory stringByAppendingPathComponent: name]
stringByDeletingLastPathComponent];
cleanname = [name lastPathComponent];
filelist = [[mgr directoryContentsAtPath: path] objectEnumerator];
while ((match = [filelist nextObject]))
{
if ([name isEqual: [match stringByDeletingPathExtension]])
return [directory stringByAppendingPathComponent: match];
if ([cleanname isEqual: [match stringByDeletingPathExtension]])
return [path stringByAppendingPathComponent: match];
}
return nil;