+ CFMutableArrayRef array = NULL;
+ if (next('+')) { // {+%O, => copy array argument, then proceed
+ if (next('%') && next('O')) {
+ CFArrayRef source = va_arg(*args, CFArrayRef);
+ array = CFArrayCreateMutableCopy(allocator, 0, source);
+ if (next('}'))
+ return array;
+ } else
+ return NULL; // bad syntax
+ } else {
+ array = makeCFMutableArray(0);
+ }