Transition from libircclient color conversion to native
This commit is contained in:
parent
d08c081729
commit
d92bed797d
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
/* 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 */; };
|
||||||
@ -24,8 +26,6 @@
|
|||||||
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 */; };
|
||||||
@ -39,6 +39,8 @@
|
|||||||
|
|
||||||
/* 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>"; };
|
||||||
@ -55,8 +57,6 @@
|
|||||||
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; };
|
||||||
@ -84,8 +84,8 @@
|
|||||||
866B9D4F1C97530E00F460BB /* NSData+SA_NSDataExtensions */ = {
|
866B9D4F1C97530E00F460BB /* NSData+SA_NSDataExtensions */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
86D02CD4275B79FB00876E93 /* NSData+SA_NSDataExtensions.h */,
|
86627E1F276648E400AEFEB7 /* NSData+SA_NSDataExtensions.h */,
|
||||||
86D02CD5275B79FB00876E93 /* NSData+SA_NSDataExtensions.m */,
|
86627E20276648E400AEFEB7 /* NSData+SA_NSDataExtensions.m */,
|
||||||
);
|
);
|
||||||
name = "NSData+SA_NSDataExtensions";
|
name = "NSData+SA_NSDataExtensions";
|
||||||
path = SA_NSDataExtensions;
|
path = SA_NSDataExtensions;
|
||||||
@ -203,6 +203,7 @@
|
|||||||
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 */,
|
||||||
@ -214,7 +215,6 @@
|
|||||||
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 */,
|
||||||
);
|
);
|
||||||
@ -291,9 +291,9 @@
|
|||||||
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;
|
||||||
|
|||||||
@ -138,7 +138,8 @@
|
|||||||
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 {
|
||||||
@ -148,7 +149,8 @@
|
|||||||
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 {
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
// 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"
|
||||||
|
|
||||||
/********************************************/
|
/********************************************/
|
||||||
|
|||||||
@ -168,6 +168,18 @@
|
|||||||
*/
|
*/
|
||||||
-(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
|
||||||
/**************************/
|
/**************************/
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#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
|
||||||
@ -190,6 +191,73 @@ static NSDictionary* ircNumericCodeList;
|
|||||||
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)
|
||||||
/*************************************/
|
/*************************************/
|
||||||
@ -347,7 +415,8 @@ static NSDictionary* ircNumericCodeList;
|
|||||||
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
|
||||||
@ -359,7 +428,8 @@ static NSDictionary* ircNumericCodeList;
|
|||||||
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
|
||||||
@ -425,16 +495,17 @@ static NSDictionary* ircNumericCodeList;
|
|||||||
|| !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++) {
|
[NSIndexSet from:0
|
||||||
[params_array addObject:[NSData dataFromCString:(*process_color_codes)(params[i])]];
|
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
|
params_array = [NSMutableArray arrayOfCStringData:params
|
||||||
count:count];
|
count:count];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user