Commits

Peter Hosey committed 83e7c05

Support passing an array for the first argument as well as any subsequent argument.

Comments (0)

Files changed (1)

 
 	NSMutableArray *array = [NSMutableArray arrayWithObject:name];
 	if (arg1) {
-		[array addObject:arg1];
+		void (^addToArray)(NSMutableArray *, id) = ^void(NSMutableArray *theArray, id argToAdd) {
+			if ([argToAdd isKindOfClass:[NSString class]]) {
+				[theArray addObject:argToAdd];
+			} else if ([argToAdd isKindOfClass:[NSArray class]]) {
+				for (id subarg in argToAdd) {
+					NSAssert([subarg isKindOfClass:[NSString class]], @"Array of args %@ passed that contains a non-string (%@)", argToAdd, subarg);
+				}
+
+				[theArray addObjectsFromArray:argToAdd];
+			} else {
+				NSAssert([argToAdd isKindOfClass:[NSString class]] || [argToAdd isKindOfClass:[NSArray class]], @"Only strings and arrays of strings are valid arguments");
+			}
+		};
+
+		addToArray(array, arg1);
 
 		id arg = nil;
 		while ((arg = va_arg(argl, id))) {
-			if ([arg isKindOfClass:[NSString class]]) {
-				[array addObject:arg];
-			} else if ([arg isKindOfClass:[NSArray class]]) {
-				for (id subarg in arg) {
-					NSAssert([subarg isKindOfClass:[NSString class]], @"Array of args %@ passed that contains a non-string (%@)", arg, subarg);
-				}
-
-				[array addObjectsFromArray:arg];
-			} else {
-				NSAssert([arg isKindOfClass:[NSString class]] || [arg isKindOfClass:[NSArray class]], @"Only strings and arrays of strings are valid arguments");
-			}
+			addToArray(array, arg);
 		}
 	}
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.