浏览代码

Transition from libircclient color conversion to native

master
Said Achmiz 4 年前
父节点
当前提交
d92bed797d

+ 8
- 8
IRCClient.xcodeproj/project.pbxproj 查看文件



/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
8657E6E21C2B55B900BD4E50 /* IRC_Numerics.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8657E6E11C2B55B900BD4E50 /* IRC_Numerics.plist */; }; 8657E6E21C2B55B900BD4E50 /* IRC_Numerics.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8657E6E11C2B55B900BD4E50 /* IRC_Numerics.plist */; };
86627E21276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86627E1F276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h */; };
86627E22276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86627E20276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m */; };
86769D6D1C94DC5300B86A72 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5B1C94DC5300B86A72 /* config.h */; }; 86769D6D1C94DC5300B86A72 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5B1C94DC5300B86A72 /* config.h */; };
86769D6E1C94DC5300B86A72 /* dcc.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5C1C94DC5300B86A72 /* dcc.h */; }; 86769D6E1C94DC5300B86A72 /* dcc.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5C1C94DC5300B86A72 /* dcc.h */; };
86769D6F1C94DC5300B86A72 /* libirc_errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5D1C94DC5300B86A72 /* libirc_errors.h */; }; 86769D6F1C94DC5300B86A72 /* libirc_errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 86769D5D1C94DC5300B86A72 /* libirc_errors.h */; };
86B0D3ED22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86B0D3EB22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m */; }; 86B0D3ED22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86B0D3EB22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m */; };
86BAE5A1232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86BAE59F232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m */; }; 86BAE5A1232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86BAE59F232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m */; };
86BAE5A2232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86BAE5A0232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h */; }; 86BAE5A2232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86BAE5A0232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h */; };
86D02CD6275B79FB00876E93 /* NSData+SA_NSDataExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D02CD4275B79FB00876E93 /* NSData+SA_NSDataExtensions.h */; };
86D02CD7275B79FB00876E93 /* NSData+SA_NSDataExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86D02CD5275B79FB00876E93 /* NSData+SA_NSDataExtensions.m */; };
86D02CE0275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D02CDE275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h */; }; 86D02CE0275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 86D02CDE275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h */; };
86D02CE1275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86D02CDF275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m */; }; 86D02CE1275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 86D02CDF275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m */; };
86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF11C21F81900B033A4 /* IRCClientChannel_Private.h */; }; 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 86F2EFF11C21F81900B033A4 /* IRCClientChannel_Private.h */; };


/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
8657E6E11C2B55B900BD4E50 /* IRC_Numerics.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = IRC_Numerics.plist; sourceTree = "<group>"; }; 8657E6E11C2B55B900BD4E50 /* IRC_Numerics.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = IRC_Numerics.plist; sourceTree = "<group>"; };
86627E1F276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+SA_NSDataExtensions.h"; path = "../../SA_NSDataExtensions/NSData+SA_NSDataExtensions.h"; sourceTree = "<group>"; };
86627E20276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+SA_NSDataExtensions.m"; path = "../../SA_NSDataExtensions/NSData+SA_NSDataExtensions.m"; sourceTree = "<group>"; };
86769D5B1C94DC5300B86A72 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 86769D5B1C94DC5300B86A72 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
86769D5C1C94DC5300B86A72 /* dcc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dcc.h; sourceTree = "<group>"; }; 86769D5C1C94DC5300B86A72 /* dcc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dcc.h; sourceTree = "<group>"; };
86769D5D1C94DC5300B86A72 /* libirc_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_errors.h; sourceTree = "<group>"; }; 86769D5D1C94DC5300B86A72 /* libirc_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libirc_errors.h; sourceTree = "<group>"; };
86B0D3EB22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; name = "NSArray+SA_NSArrayExtensions.m"; path = "../../OS X Projects/SA_IRCBotServer/NSArray+SA_NSArrayExtensions/NSArray+SA_NSArrayExtensions.m"; sourceTree = "<group>"; }; 86B0D3EB22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; name = "NSArray+SA_NSArrayExtensions.m"; path = "../../OS X Projects/SA_IRCBotServer/NSArray+SA_NSArrayExtensions/NSArray+SA_NSArrayExtensions.m"; sourceTree = "<group>"; };
86BAE59F232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSIndexSet+SA_NSIndexSetExtensions.m"; path = "../../OS X Projects/XGopher/NSIndexSet+SA_NSIndexSetExtensions/NSIndexSet+SA_NSIndexSetExtensions.m"; sourceTree = "<group>"; }; 86BAE59F232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSIndexSet+SA_NSIndexSetExtensions.m"; path = "../../OS X Projects/XGopher/NSIndexSet+SA_NSIndexSetExtensions/NSIndexSet+SA_NSIndexSetExtensions.m"; sourceTree = "<group>"; };
86BAE5A0232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSIndexSet+SA_NSIndexSetExtensions.h"; path = "../../OS X Projects/XGopher/NSIndexSet+SA_NSIndexSetExtensions/NSIndexSet+SA_NSIndexSetExtensions.h"; sourceTree = "<group>"; }; 86BAE5A0232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSIndexSet+SA_NSIndexSetExtensions.h"; path = "../../OS X Projects/XGopher/NSIndexSet+SA_NSIndexSetExtensions/NSIndexSet+SA_NSIndexSetExtensions.h"; sourceTree = "<group>"; };
86D02CD4275B79FB00876E93 /* NSData+SA_NSDataExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSData+SA_NSDataExtensions.h"; path = "../../SA_NSDataExtensions/NSData+SA_NSDataExtensions.h"; sourceTree = "<group>"; };
86D02CD5275B79FB00876E93 /* NSData+SA_NSDataExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSData+SA_NSDataExtensions.m"; path = "../../SA_NSDataExtensions/NSData+SA_NSDataExtensions.m"; sourceTree = "<group>"; };
86D02CDE275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+SA_NSStringExtensions.h"; path = "../SA_NSStringExtensions/NSString+SA_NSStringExtensions.h"; sourceTree = "<group>"; }; 86D02CDE275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+SA_NSStringExtensions.h"; path = "../SA_NSStringExtensions/NSString+SA_NSStringExtensions.h"; sourceTree = "<group>"; };
86D02CDF275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+SA_NSStringExtensions.m"; path = "../SA_NSStringExtensions/NSString+SA_NSStringExtensions.m"; sourceTree = "<group>"; }; 86D02CDF275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+SA_NSStringExtensions.m"; path = "../SA_NSStringExtensions/NSString+SA_NSStringExtensions.m"; sourceTree = "<group>"; };
86F2EFE61C21F73600B033A4 /* IRCClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IRCClient.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 86F2EFE61C21F73600B033A4 /* IRCClient.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IRCClient.framework; sourceTree = BUILT_PRODUCTS_DIR; };
866B9D4F1C97530E00F460BB /* NSData+SA_NSDataExtensions */ = { 866B9D4F1C97530E00F460BB /* NSData+SA_NSDataExtensions */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
86D02CD4275B79FB00876E93 /* NSData+SA_NSDataExtensions.h */,
86D02CD5275B79FB00876E93 /* NSData+SA_NSDataExtensions.m */,
86627E1F276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h */,
86627E20276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m */,
); );
name = "NSData+SA_NSDataExtensions"; name = "NSData+SA_NSDataExtensions";
path = SA_NSDataExtensions; path = SA_NSDataExtensions;
86769D751C94DC5300B86A72 /* session.h in Headers */, 86769D751C94DC5300B86A72 /* session.h in Headers */,
86769D6E1C94DC5300B86A72 /* dcc.h in Headers */, 86769D6E1C94DC5300B86A72 /* dcc.h in Headers */,
86B0D3E922C5A3D700E60877 /* NSRange-Conventional.h in Headers */, 86B0D3E922C5A3D700E60877 /* NSRange-Conventional.h in Headers */,
86627E21276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h in Headers */,
86F2EFFB1C21F81900B033A4 /* IRCClientChannelDelegate.h in Headers */, 86F2EFFB1C21F81900B033A4 /* IRCClientChannelDelegate.h in Headers */,
86769D721C94DC5300B86A72 /* libirc_rfcnumeric.h in Headers */, 86769D721C94DC5300B86A72 /* libirc_rfcnumeric.h in Headers */,
86D02CE0275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h in Headers */, 86D02CE0275B9E6B00876E93 /* NSString+SA_NSStringExtensions.h in Headers */,
86BAE5A2232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h in Headers */, 86BAE5A2232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.h in Headers */,
86B0D3EC22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.h in Headers */, 86B0D3EC22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.h in Headers */,
86769D6F1C94DC5300B86A72 /* libirc_errors.h in Headers */, 86769D6F1C94DC5300B86A72 /* libirc_errors.h in Headers */,
86D02CD6275B79FB00876E93 /* NSData+SA_NSDataExtensions.h in Headers */,
86769D711C94DC5300B86A72 /* libirc_options.h in Headers */, 86769D711C94DC5300B86A72 /* libirc_options.h in Headers */,
86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */, 86F2EFF81C21F81900B033A4 /* IRCClientChannel_Private.h in Headers */,
); );
86BAE5A1232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m in Sources */, 86BAE5A1232ABFD200936147 /* NSIndexSet+SA_NSIndexSetExtensions.m in Sources */,
86F2EFFD1C21F81900B033A4 /* IRCClientSession.m in Sources */, 86F2EFFD1C21F81900B033A4 /* IRCClientSession.m in Sources */,
86B0D3ED22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m in Sources */, 86B0D3ED22C5FF1300E60877 /* NSArray+SA_NSArrayExtensions.m in Sources */,
86D02CD7275B79FB00876E93 /* NSData+SA_NSDataExtensions.m in Sources */,
86D02CE1275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m in Sources */, 86D02CE1275B9E6B00876E93 /* NSString+SA_NSStringExtensions.m in Sources */,
86F2EFFA1C21F81900B033A4 /* IRCClientChannel.m in Sources */, 86F2EFFA1C21F81900B033A4 /* IRCClientChannel.m in Sources */,
86627E22276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m in Sources */,
86769D791C94DC5300B86A72 /* libircclient.c in Sources */, 86769D791C94DC5300B86A72 /* libircclient.c in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;

+ 4
- 2
IRCClient/IRCClientChannel.m 查看文件

return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :%s", "PRIVMSG %s :%s",
_name.terminatedCString, _name.terminatedCString,
irc_color_convert_to_mirc(message.terminatedCString));
// irc_color_convert_to_mirc(message.terminatedCString));
[self.session colorConvertToMIRC:message].terminatedCString);
} }


-(int) action:(NSData *)action { -(int) action:(NSData *)action {
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01" "ACTION %s\x01", "PRIVMSG %s :\x01" "ACTION %s\x01",
_name.terminatedCString, _name.terminatedCString,
irc_color_convert_to_mirc(action.terminatedCString));
// irc_color_convert_to_mirc(action.terminatedCString));
[self.session colorConvertToMIRC:action].terminatedCString);
} }


-(int) notice:(NSData *)notice { -(int) notice:(NSData *)notice {

+ 1
- 0
IRCClient/IRCClientChannel_Private.h 查看文件

// See LICENSE and README.md for more info. // See LICENSE and README.md for more info.


#import "IRCClientChannel.h" #import "IRCClientChannel.h"
#import "IRCClientSession.h"
#include "libircclient.h" #include "libircclient.h"


/********************************************/ /********************************************/

+ 12
- 0
IRCClient/IRCClientSession.h 查看文件

*/ */
-(void) run; -(void) run;


/** Convert libircclient markup in a message to mIRC format codes.
*/
-(NSData *) colorConvertToMIRC:(NSData *)message;

/** Convert mIRC format codes in a message to libircclient markup.
*/
-(NSData *) colorConvertFromMIRC:(NSData *)message;

/** Remove mIRC format codes from a message.
*/
-(NSData *) colorStripFromMIRC:(NSData *)message;

/**************************/ /**************************/
#pragma mark - IRC commands #pragma mark - IRC commands
/**************************/ /**************************/

+ 82
- 11
IRCClient/IRCClientSession.m 查看文件

#import "NSData+SA_NSDataExtensions.h" #import "NSData+SA_NSDataExtensions.h"
#import "NSString+SA_NSStringExtensions.h" #import "NSString+SA_NSStringExtensions.h"
#import "NSRange-Conventional.h" #import "NSRange-Conventional.h"
#import "NSIndexSet+SA_NSIndexSetExtensions.h"


/********************************************/ /********************************************/
#pragma mark - Callback function declarations #pragma mark - Callback function declarations
nickUserHost.length - (rangeOfUserHostSeparator.location + 1))]); nickUserHost.length - (rangeOfUserHostSeparator.location + 1))]);
} }


// TODO: implement color support
-(NSData *) colorConvertToMIRC:(NSData *)message {
NSMutableData *workingCopy = [message mutableCopy];

[@[ @[ @"[B]", @"[/B]", [NSData dataFromCString:"\x02"] ],
@[ @"[I]", @"[/I]", [NSData dataFromCString:"\x16"] ],
@[ @"[U]", @"[/U]", [NSData dataFromCString:"\x1F"] ] ] forEach:^(NSArray *tags) {
NSData *openingTag = [tags[0] dataUsingEncoding:self.encoding];
NSData *closingTag = [tags[1] dataUsingEncoding:self.encoding];
NSData *mircCode = tags[2];

NSRange rangeOfOpeningTag, rangeOfClosingTag;
do {
// Find next opening tag.
rangeOfOpeningTag = [workingCopy rangeOfData:openingTag
options:(NSDataSearchOptions) 0
range:workingCopy.fullRange];
if (rangeOfOpeningTag.location != NSNotFound) {
// Replace opening tag.
[workingCopy replaceBytesInRange:rangeOfOpeningTag
withBytes:mircCode.bytes
length:mircCode.length];

// Find next closing tag.
rangeOfClosingTag = [workingCopy rangeOfData:closingTag
options:(NSDataSearchOptions) 0
range:[workingCopy rangeAfterRange:NSMakeRange(rangeOfOpeningTag.location,
mircCode.length)]];
if (rangeOfClosingTag.location != NSNotFound) {
// Replace closing tag, if any.
[workingCopy replaceBytesInRange:rangeOfClosingTag
withBytes:mircCode.bytes
length:mircCode.length];
} else {
// Otherwise, end the string with a closing tag.
[workingCopy appendBytes:mircCode.bytes
length:mircCode.length];
}
}
} while (rangeOfOpeningTag.location != NSNotFound);

// Clean up stray closing tags.
do {
rangeOfClosingTag = [workingCopy rangeOfData:closingTag
options:(NSDataSearchOptions) 0
range:workingCopy.fullRange];
if (rangeOfClosingTag.location != NSNotFound) {
[workingCopy replaceBytesInRange:rangeOfClosingTag
withBytes:mircCode.bytes
length:mircCode.length];
}
} while (rangeOfClosingTag.location != NSNotFound);
}];

return [workingCopy copy];
}

-(NSData *) colorConvertFromMIRC:(NSData *)message {
// TODO: Implement this for real!
return [self colorStripFromMIRC:message];
}

// TODO: implement this!
-(NSData *) colorStripFromMIRC:(NSData *)message {
return message;
}

/*************************************/ /*************************************/
#pragma mark - Class methods (private) #pragma mark - Class methods (private)
/*************************************/ /*************************************/
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :%s", "PRIVMSG %s :%s",
target.terminatedCString, target.terminatedCString,
irc_color_convert_to_mirc(message.terminatedCString));
// irc_color_convert_to_mirc(message.terminatedCString));
[self colorConvertToMIRC:message].terminatedCString);
} }


-(int) action:(NSData *)action -(int) action:(NSData *)action
return irc_send_raw(_irc_session, return irc_send_raw(_irc_session,
"PRIVMSG %s :\x01" "ACTION %s\x01", "PRIVMSG %s :\x01" "ACTION %s\x01",
target.terminatedCString, target.terminatedCString,
irc_color_convert_to_mirc(action.terminatedCString));
// irc_color_convert_to_mirc(action.terminatedCString));
[self colorConvertToMIRC:action].terminatedCString);
} }


-(int) notice:(NSData *)notice -(int) notice:(NSData *)notice
|| !strcmp(event, "SERVNOTICE") || !strcmp(event, "SERVNOTICE")
|| !strcmp(event, "CTCP_ACTION") || !strcmp(event, "CTCP_ACTION")
)) { )) {
char* (*process_color_codes) (const char *) = (whatAboutColors == SA_IRC_ParseColorCodes
? irc_color_convert_from_mirc
: irc_color_strip_from_mirc);

params_array = [NSMutableArray arrayWithCapacity:count]; params_array = [NSMutableArray arrayWithCapacity:count];
for (NSUInteger i = 0; i < count; i++) {
[params_array addObject:[NSData dataFromCString:(*process_color_codes)(params[i])]];
}
[NSIndexSet from:0
for:count
do:^(NSUInteger idx) {
NSData *param = (whatAboutColors == SA_IRC_ParseColorCodes
? [self colorConvertFromMIRC:[NSData dataFromCString:params[idx]]]
: [self colorStripFromMIRC:[NSData dataFromCString:params[idx]]]);
[params_array addObject:param];
}];
} else { } else {
params_array = (NSMutableArray *) [NSArray arrayOfCStringData:params
count:count];
params_array = [NSMutableArray arrayOfCStringData:params
count:count];
} }


NSData *origin_data = origin ? [NSData dataFromCString:origin] : nil; NSData *origin_data = origin ? [NSData dataFromCString:origin] : nil;

+ 2
- 2
libircclient/src/colors.c 查看文件

#include <ctype.h> #include <ctype.h>


#define LIBIRC_COLORPARSER_BOLD (1<<1) #define LIBIRC_COLORPARSER_BOLD (1<<1)
#define LIBIRC_COLORPARSER_UNDERLINE (1<<2)
#define LIBIRC_COLORPARSER_UNDERLINE (1<<2)
#define LIBIRC_COLORPARSER_REVERSE (1<<3) #define LIBIRC_COLORPARSER_REVERSE (1<<3)
#define LIBIRC_COLORPARSER_COLOR (1<<4) #define LIBIRC_COLORPARSER_COLOR (1<<4)


#define LIBIRC_COLORPARSER_MAXCOLORS 15
#define LIBIRC_COLORPARSER_MAXCOLORS 15




#define max(a,b) \ #define max(a,b) \

正在加载...
取消
保存