/* Cydia - iPhone UIKit Front-End for Debian APT * Copyright (C) 2008-2015 Jay Freeman (saurik) */ /* GNU General Public License, Version 3 {{{ */ /* * Cydia is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * Cydia is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Cydia. If not, see . **/ /* }}} */ #include "CyteKit/UCPlatform.h" #include "CyteKit/stringWith.h" @implementation NSString (Cyte) + (NSString *) stringWithUTF8BytesNoCopy:(const char *)bytes length:(int)length { return [[[NSString alloc] initWithBytesNoCopy:const_cast(bytes) length:length encoding:NSUTF8StringEncoding freeWhenDone:NO] autorelease]; } + (NSString *) stringWithUTF8Bytes:(const char *)bytes length:(int)length { return [[[NSString alloc] initWithBytes:bytes length:length encoding:NSUTF8StringEncoding] autorelease]; } + (NSString *) stringWithFormat:(NSString *)format :(size_t)count :(id *)args { switch (count) { case 0: return [[[NSString alloc] initWithString:format] autorelease];; case 1: return [[[NSString alloc] initWithFormat:format, args[0]] autorelease];; case 2: return [[[NSString alloc] initWithFormat:format, args[0], args[1]] autorelease];; case 3: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2]] autorelease];; case 4: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2], args[3]] autorelease];; case 5: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2], args[3], args[4]] autorelease];; case 6: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2], args[3], args[4], args[5]] autorelease];; case 7: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2], args[3], args[4], args[5], args[6]] autorelease];; case 8: return [[[NSString alloc] initWithFormat:format, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]] autorelease];; default: _assert(false); } } @end