diff --git a/NSArrayALPMListExtensions.h b/NSArrayALPMListExtensions.h index 4dc4fc5..9db46c6 100644 --- a/NSArrayALPMListExtensions.h +++ b/NSArrayALPMListExtensions.h @@ -28,9 +28,12 @@ @interface NSArray (alpm_list_t) + (id) arrayWithPackageList:(alpm_list_t *)aList database:(PMDatabase *)theDatabase; + (id) arrayWithDatabaseList:(alpm_list_t *)aList; ++ (id) arrayWithStringList:(alpm_list_t *)aList; +- (id) initWithStringList:(alpm_list_t *)aList; @end @interface NSMutableArray (alpm_list_t) - (id) initWithPackageList:(alpm_list_t *)aList database:(PMDatabase *)theDatabase; - (id) initWithDatabaseList:(alpm_list_t *)aList; +- (id) initWithStringList:(alpm_list_t *)aList; @end diff --git a/NSArrayALPMListExtensions.m b/NSArrayALPMListExtensions.m index f7fd33b..fa3d299 100644 --- a/NSArrayALPMListExtensions.m +++ b/NSArrayALPMListExtensions.m @@ -44,6 +44,24 @@ + (id) arrayWithDatabaseList:(alpm_list_t *)aList [tmp release]; return array; } + ++ (id) arrayWithStringList:(alpm_list_t *)aList +{ + NSMutableArray *tmp; + NSArray *array; + tmp = [[NSMutableArray alloc] initWithStringList:aList]; + array = [NSArray arrayWithArray:tmp]; + [tmp release]; + return array; +} + +- (id) initWithStringList:(alpm_list_t *)aList +{ + NSMutableArray *anArray; + anArray = [[NSMutableArray alloc] initWithStringList:aList]; + return [self initWithArray:anArray]; +} + @end @implementation NSMutableArray (alpm_list_t) @@ -82,4 +100,22 @@ - (id) initWithDatabaseList:(alpm_list_t *)aList } return self; } + +- (id) initWithStringList:(alpm_list_t *)aList +{ + self = [self initWithCapacity:alpm_list_count(aList)]; + if(self != nil) { + alpm_list_t *node; + NSString *string; + + node = aList; + while(node != NULL) { + string = [[NSString alloc] initWithUTF8String:alpm_list_getdata(node)]; + [self addObject:string]; + [string release]; + node = alpm_list_next(node); + } + } + return self; +} @end