From 8a4aa7de89324130b87d63b9e9857e342ef195f2 Mon Sep 17 00:00:00 2001 From: helge Date: Wed, 9 Feb 2005 11:16:48 +0000 Subject: [PATCH] added a method to mail-quote a string git-svn-id: http://svn.opengroupware.org/SOPE/trunk@544 e4a50df8-12e2-0310-a44c-efbce7f8a7e3 --- sope-core/NGExtensions/ChangeLog | 6 +++ .../FdExt.subproj/NSString+misc.m | 47 +++++++++++++++++++ .../NGExtensions/NGExtensions/NSString+misc.h | 6 +++ sope-core/NGExtensions/Version | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/sope-core/NGExtensions/ChangeLog b/sope-core/NGExtensions/ChangeLog index 3db55f04..3b6e4ab5 100644 --- a/sope-core/NGExtensions/ChangeLog +++ b/sope-core/NGExtensions/ChangeLog @@ -1,3 +1,9 @@ +2005-02-08 Helge Hess + + * FdExt.subproj/NSString+misc.m: added new method + -stringByApplyingMailQuoting for placing "> " in front of each line + contained in the string (v4.5.142) + 2005-01-09 Helge Hess * NGExtensions/AutoDefines.h, common.h: fixed defines on MacOSX (fixes diff --git a/sope-core/NGExtensions/FdExt.subproj/NSString+misc.m b/sope-core/NGExtensions/FdExt.subproj/NSString+misc.m index 602a8944..ebb30279 100644 --- a/sope-core/NGExtensions/FdExt.subproj/NSString+misc.m +++ b/sope-core/NGExtensions/FdExt.subproj/NSString+misc.m @@ -289,6 +289,53 @@ @end /* NSString(NGScanning) */ + +@implementation NSString(MailQuoting) + +- (NSString *)stringByApplyingMailQuoting { + NSString *s; + unsigned i, len, nl; + unichar *sourceBuf, *targetBuf; + + if ((len = [self length]) == 0) + return @""; + + sourceBuf = malloc((len + 4) * sizeof(unichar)); + [self getCharacters:sourceBuf]; + + for (nl = 0, i = 0; i < len; i++) { + if (sourceBuf[i] == '\n') + nl++; + } + + if (nl == 0) { + if (sourceBuf) free(sourceBuf); + return [@"> " stringByAppendingString:self]; + } + + targetBuf = malloc((len + 8 + (nl * 3)) * sizeof(unichar)); + targetBuf[0] = '>'; + targetBuf[1] = ' '; + nl = 2; + + for (i = 0; i < len; i++) { + targetBuf[nl] = sourceBuf[i]; + nl++; + + if (sourceBuf[i] == '\n') { + targetBuf[nl] = '>'; nl++; + targetBuf[nl] = ' '; nl++; + } + } + + s = [[NSString alloc] initWithCharacters:targetBuf length:nl]; + if (targetBuf) free(targetBuf); + if (sourceBuf) free(sourceBuf); + return [s autorelease]; +} + +@end /* NSString(MailQuoting) */ + // linking void __link_NSString_misc(void) { diff --git a/sope-core/NGExtensions/NGExtensions/NSString+misc.h b/sope-core/NGExtensions/NGExtensions/NSString+misc.h index 1e710ba5..689fb51f 100644 --- a/sope-core/NGExtensions/NGExtensions/NSString+misc.h +++ b/sope-core/NGExtensions/NGExtensions/NSString+misc.h @@ -129,4 +129,10 @@ @end +@interface NSString(MailQuoting) + +- (NSString *)stringByApplyingMailQuoting; + +@end + #endif /* __NGExtensions_NSString_misc_H__ */ diff --git a/sope-core/NGExtensions/Version b/sope-core/NGExtensions/Version index 6be8e2ed..639e30fc 100644 --- a/sope-core/NGExtensions/Version +++ b/sope-core/NGExtensions/Version @@ -1,6 +1,6 @@ # version -SUBMINOR_VERSION:=141 +SUBMINOR_VERSION:=142 # v4.3.115 requires libFoundation v1.0.59 # v4.2.72 requires libEOControl v4.2.39 -- 2.39.5