Changeset 3517
- Timestamp:
- 01/01/07 00:10:01 (2 years ago)
- Files:
-
- trunk/Additions/NSStringAdditions.h (modified) (1 diff)
- trunk/Additions/NSStringAdditions.m (modified) (5 diffs)
- trunk/Chat Core/MVChatPluginManager.m (modified) (1 diff)
- trunk/Chat Core/MVSILCChatConnection.m (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Additions/NSStringAdditions.h
r3515 r3517 4 4 + (NSString *) locallyUniqueString; 5 5 6 + (NSString *) mimeCharsetTagFromStringEncoding:(NSStringEncoding) encoding;7 6 + (unsigned long) scriptTypedEncodingFromStringEncoding:(NSStringEncoding) encoding; 8 7 + (NSStringEncoding) stringEncodingFromScriptTypedEncoding:(unsigned long) encoding; 9 10 - (id) initWithBytes:(const void *) bytes encoding:(NSStringEncoding) encoding;11 - (id) initWithBytesNoCopy:(void *) bytes encoding:(NSStringEncoding) encoding freeWhenDone:(BOOL) free;12 + (id) stringWithBytes:(const void *) bytes encoding:(NSStringEncoding) encoding;13 + (id) stringWithBytesNoCopy:(void *) bytes encoding:(NSStringEncoding) encoding freeWhenDone:(BOOL) free;14 15 - (const char *) bytesUsingEncoding:(NSStringEncoding) encoding allowLossyConversion:(BOOL) lossy;16 - (const char *) bytesUsingEncoding:(NSStringEncoding) encoding;17 8 18 9 - (NSString *) stringByEncodingXMLSpecialCharactersAsEntities; trunk/Additions/NSStringAdditions.m
r3515 r3517 113 113 } 114 114 115 + (NSString *) mimeCharsetTagFromStringEncoding:(NSStringEncoding) encoding {116 switch( encoding ) {117 default:118 case NSASCIIStringEncoding:119 case NSNonLossyASCIIStringEncoding:120 return @"us-ascii";121 break;122 case NSUTF8StringEncoding:123 return @"utf-8";124 break;125 case NSISOLatin1StringEncoding:126 return @"iso-8859-1";127 break;128 case 0x80000203:129 return @"iso-8859-3";130 break;131 case 0x80000208:132 return @"iso-8859-8";133 break;134 case 0x80000005:135 return @"x-mac-hebrew";136 break;137 case 0x80000505:138 return @"windows-1255";139 break;140 case 0x8000020F:141 return @"iso-8859-9";142 break;143 case NSWindowsCP1252StringEncoding:144 return @"windows-1252";145 break;146 case NSISOLatin2StringEncoding:147 return @"iso-8859-2";148 break;149 case 0x80000204:150 return @"iso-8859-4";151 break;152 case NSWindowsCP1250StringEncoding:153 return @"windows-1250";154 break;155 case 0x80000A02:156 return @"KOI8-R";157 break;158 case 0x80000205:159 return @"iso-8859-5";160 break;161 case NSWindowsCP1251StringEncoding:162 return @"windows-1251";163 break;164 case 0x80000A01:165 return @"Shift_JIS";166 break;167 case NSISO2022JPStringEncoding:168 return @"iso-2022-jp";169 break;170 case NSJapaneseEUCStringEncoding:171 return @"EUC-JP";172 break;173 }174 }175 176 115 + (unsigned long) scriptTypedEncodingFromStringEncoding:(NSStringEncoding) encoding { 177 116 switch( encoding ) { … … 273 212 #pragma mark - 274 213 275 - (id) initWithBytes:(const void *) bytes encoding:(NSStringEncoding) encoding {276 if( bytes ) {277 id ret = [self initWithBytes:bytes length:strlen( bytes ) encoding:encoding];278 if( ! ret ) [self release];279 return ret;280 }281 282 [self release];283 return nil;284 }285 286 - (id) initWithBytesNoCopy:(void *) bytes encoding:(NSStringEncoding) encoding freeWhenDone:(BOOL) free {287 if( bytes ) {288 id ret = [self initWithBytesNoCopy:bytes length:strlen( bytes ) encoding:encoding freeWhenDone:free];289 if( ! ret ) [self release];290 return ret;291 }292 293 [self release];294 return nil;295 }296 297 + (id) stringWithBytes:(const void *) bytes encoding:(NSStringEncoding) encoding {298 return [[[self allocWithZone:nil] initWithBytes:bytes encoding:encoding] autorelease];299 }300 301 + (id) stringWithBytesNoCopy:(void *) bytes encoding:(NSStringEncoding) encoding freeWhenDone:(BOOL) free {302 return [[[self allocWithZone:nil] initWithBytesNoCopy:bytes encoding:encoding freeWhenDone:free] autorelease];303 }304 305 #pragma mark -306 307 - (const char *) bytesUsingEncoding:(NSStringEncoding) encoding allowLossyConversion:(BOOL) lossy {308 NSMutableData *ret = [[[self dataUsingEncoding:encoding allowLossyConversion:lossy] mutableCopyWithZone:nil] autorelease];309 [ret appendBytes:"\0" length:1];310 return [ret bytes];311 }312 313 - (const char *) bytesUsingEncoding:(NSStringEncoding) encoding {314 return [self bytesUsingEncoding:encoding allowLossyConversion:NO];315 }316 317 #pragma mark -318 319 214 - (NSString *) stringByEncodingXMLSpecialCharactersAsEntities { 320 215 NSMutableString *result = [self mutableCopyWithZone:nil]; … … 385 280 386 281 - (void) decodeXMLSpecialCharacterEntities { 387 [self replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )];388 282 [self replaceOccurrencesOfString:@"<" withString:@"<" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )]; 389 283 [self replaceOccurrencesOfString:@">" withString:@">" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )]; 390 284 [self replaceOccurrencesOfString:@""" withString:@"\"" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )]; 391 285 [self replaceOccurrencesOfString:@"'" withString:@"'" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )]; 286 [self replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch range:NSMakeRange( 0, [self length] )]; 392 287 } 393 288 … … 396 291 - (void) escapeCharactersInSet:(NSCharacterSet *) set { 397 292 NSScanner *scanner = [[NSScanner allocWithZone:nil] initWithString:self]; 398 int offset = 0; 293 294 unsigned offset = 0; 399 295 while( ! [scanner isAtEnd] ) { 400 296 [scanner scanUpToCharactersFromSet:set intoString:nil]; … … 404 300 } 405 301 } 302 406 303 [scanner release]; 407 304 } trunk/Chat Core/MVChatPluginManager.m
r3433 r3517 82 82 NSBundle *bundle = [NSBundle bundleWithPath:[path stringByAppendingPathComponent:file]]; 83 83 if( [bundle load] && [[bundle principalClass] conformsToProtocol:@protocol( MVChatPlugin )] ) { 84 id plugin = [[[ [bundle principalClass] allocWithZone:nil] initWithManager:self] autorelease];84 id plugin = [[[bundle principalClass] allocWithZone:nil] initWithManager:self]; 85 85 if( plugin ) [self addPlugin:plugin]; 86 [plugin release]; 86 87 } 87 88 } trunk/Chat Core/MVSILCChatConnection.m
r3457 r3517 62 62 63 63 NSString *tmp = [NSString stringWithUTF8String:msg]; 64 NSString *msgString = [[ [NSString allocWithZone:nil] initWithFormat:tmp arguments:list] autorelease];64 NSString *msgString = [[NSString allocWithZone:nil] initWithFormat:tmp arguments:list]; 65 65 va_end( list ); 66 66 67 67 [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:MVChatConnectionGotRawMessageNotification object:self userInfo:[NSDictionary dictionaryWithObjectsAndKeys:msgString, @"message", [NSNumber numberWithBool:NO], @"outbound", nil]]; 68 69 [msgString release]; 68 70 } 69 71 } … … 89 91 if( silc_mime_parse( message, message_len, NULL, 0, type, sizeof( type ) - 1, enc, sizeof( enc ) - 1, &data, &data_len ) ) { 90 92 if( strstr( enc, "base64" ) ) { 91 NSString *body = [[[NSString allocWithZone:nil] initWithBytes:data length:data_len encoding:NSASCIIStringEncoding] autorelease]; 92 msgData = [[[NSData allocWithZone:nil] initWithBase64EncodedString:body] autorelease]; 93 } else msgData = [[[NSData allocWithZone:nil] initWithBytes:data length:data_len] autorelease]; 94 mimeType = [NSString stringWithBytes:type encoding:NSASCIIStringEncoding]; 93 NSString *body = [[NSString allocWithZone:nil] initWithBytes:data length:data_len encoding:NSASCIIStringEncoding]; 94 msgData = [[NSData allocWithZone:nil] initWithBase64EncodedString:body]; 95 [body release]; 96 } else msgData = [[NSData allocWithZone:nil] initWithBytes:data length:data_len]; 97 98 mimeType = [[NSString allocWithZone:nil] initWithBytes:type length:strlen( type ) encoding:NSASCIIStringEncoding]; 95 99 } 96 100 } 97 101 98 if( ! msgData ) msgData = [ NSData dataWithBytes:message length:message_len];102 if( ! msgData ) msgData = [[NSData allocWithZone:nil] initWithBytes:message length:message_len]; 99 103 100 104 [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:MVChatRoomGotMessageNotification object:room userInfo:[NSDictionary dictionaryWithObjectsAndKeys:user, @"user", msgData, @"message", [NSString locallyUniqueString], @"identifier", mimeType, @"mimeType", [NSNumber numberWithBool:action], @"action", nil]]; 105 106 [msgData release]; 107 [mimeType release]; 101 108 } 102 109 … … 120 127 if( silc_mime_parse( message, message_len, NULL, 0, type, sizeof( type ) - 1, enc, sizeof( enc ) - 1, &data, &data_len ) ) { 121 128 if( strstr( enc, "base64" ) ) { 122 NSString *body = [[[NSString allocWithZone:nil] initWithBytes:data length:data_len encoding:NSASCIIStringEncoding] autorelease]; 123 msgData = [[[NSData allocWithZone:nil] initWithBase64EncodedString:body] autorelease]; 124 } else msgData = [[[NSData allocWithZone:nil] initWithBytes:data length:data_len] autorelease]; 125 mimeType = [NSString stringWithBytes:type encoding:NSASCIIStringEncoding]; 129 NSString *body = [[NSString allocWithZone:nil] initWithBytes:data length:data_len encoding:NSASCIIStringEncoding]; 130 msgData = [[NSData allocWithZone:nil] initWithBase64EncodedString:body]; 131 [body release]; 132 } else msgData = [[NSData allocWithZone:nil] initWithBytes:data length:data_len]; 133 134 mimeType = [[NSString allocWithZone:nil] initWithBytes:type length:strlen( type ) encoding:NSASCIIStringEncoding]; 126 135 } 127 136 } 128 137 129 if( ! msgData ) msgData = [ NSData dataWithBytes:message length:message_len];138 if( ! msgData ) msgData = [[NSData allocWithZone:nil] initWithBytes:message length:message_len]; 130 139 131 140 [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadWithName:MVChatConnectionGotPrivateMessageNotification object:user userInfo:[NSDictionary dictionaryWithObjectsAndKeys:msgData, @"message", [NSString locallyUniqueString], @"identifier", mimeType, @"mimeType", [NSNumber numberWithBool:action], @"action", nil]]; 141 142 [msgData release]; 143 [mimeType release]; 132 144 } 133 145 … … 614 626 MVSILCChatRoom *room = (MVSILCChatRoom *)[self joinedChatRoomWithName:[NSString stringWithUTF8String:channel -> channel_name]]; 615 627 if( ! room ) { 616 room = [[ [MVSILCChatRoom allocWithZone:nil] initWithChannelEntry:channel andConnection:self] autorelease];628 room = [[MVSILCChatRoom allocWithZone:nil] initWithChannelEntry:channel andConnection:self]; 617 629 [self _addJoinedRoom:room]; 630 [room release]; 618 631 } else { 619 632 [room updateWithChannelEntry:channel]; … … 834 847 NSURL *url = [NSURL URLWithString:@"http://colloquy.info/ip.php"]; 835 848 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:3.]; 836 NSMutableData *result = [[ [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL] mutableCopy] autorelease];849 NSMutableData *result = [[NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL] mutableCopy]; 837 850 [result appendBytes:"\0" length:1]; 838 851 839 852 silc_client_send_key_agreement( client, conn, client_entry, [result bytes], NULL, 0, 60, silcgaim_buddy_keyagr_cb, a ); 853 854 [result release]; 840 855 } 841 856 #endif
