Index: src/OFArray.h ================================================================== --- src/OFArray.h +++ src/OFArray.h @@ -21,10 +21,11 @@ } + newWithItemSize: (size_t)is; - initWithItemSize: (size_t)is; - (size_t)items; +- (void*)data; - (void*)item: (size_t)item; - (void*)last; - add: (void*)item; - addNItems: (size_t)nitems fromCArray: (void*)carray; Index: src/OFArray.m ================================================================== --- src/OFArray.m +++ src/OFArray.m @@ -41,10 +41,15 @@ - (size_t)itemsize { return itemsize; } + +- (void*)data +{ + return data; +} - (void*)item: (size_t)item { if (item >= items) /* FIXME: Maybe OFOutOfRangeException would be better? */ Index: tests/OFArray/OFArray.m ================================================================== --- tests/OFArray/OFArray.m +++ tests/OFArray/OFArray.m @@ -29,10 +29,12 @@ if (!caught) { \ puts("NOT CAUGHT!"); \ return 1; \ } +const char *str = "Hallo!"; + int main() { BOOL caught; OFArray *a; @@ -96,7 +98,24 @@ puts("Trying to access an index that does not exist..."); CATCH_EXCEPTION([a item: [a items]], OFOverflowException); [a free]; + + puts("Creating new array and using it to build a string..."); + a = [OFArray newWithItemSize: 1]; + + for (i = 0; i < strlen(str); i++) + [a add: (void*)(str + i)]; + [a add: ""]; + + if (!strcmp([a data], str)) + puts("Built string matches!"); + else { + puts("Built string does not match!"); + abort(); + } + + [a free]; + return 0; }