+2005-02-14 Helge Hess <helge.hess@skyrix.com>
+
+ * NGBase64Coding.m: added method -dataByEncodingBase64WithLineLength:
+ to support the fix for OGo bug #1228 (v4.5.146)
+
2005-02-12 Marcus Mueller <znek@mulle-kybernetik.com>
* NGCalendarDateRange.[hm]: new method -duration (v4.5.145)
return @"";
destSize = (len + 2) / 3 * 4; // 3:4 conversion ratio
- destSize += destSize / NSStringMaxLineWidth + 2; // space for newlines and '\0'
+ destSize += destSize / NSStringMaxLineWidth + 2; // space for '\n' and '\0'
destSize += 64;
dest = malloc(destSize + 4);
if (dest == NULL) return nil;
@implementation NSData(Base64Coding)
+// TODO: explain that size (which RFC specifies that?)
static int NSDataMaxLineWidth = 72;
-- (NSData *)dataByEncodingBase64 {
+- (NSData *)dataByEncodingBase64WithLineLength:(unsigned)_lineLength {
unsigned len;
size_t destSize;
size_t destLength = -1;
return [NSData data];
destSize = (len + 2) / 3 * 4; // 3:4 conversion ratio
- destSize += destSize / NSDataMaxLineWidth + 2; // space for newlines and '\0'
+ destSize += destSize / _lineLength + 2; // space for newlines and '\0'
destSize += 64;
dest = malloc(destSize + 4);
NSAssert(dest, @"invalid buffer ..");
if (encode_base64([self bytes], len,
- dest, destSize, &destLength, NSDataMaxLineWidth) == 0) {
+ dest, destSize, &destLength, _lineLength) == 0) {
return [NSData dataWithBytesNoCopy:dest length:destLength];
}
- else {
- if (dest) free((void *)dest);
- return nil;
- }
+
+ if (dest != NULL) free((void *)dest);
+ return nil;
+}
+- (NSData *)dataByEncodingBase64 {
+ return [self dataByEncodingBase64WithLineLength:NSDataMaxLineWidth];
}
- (NSData *)dataByDecodingBase64 {
@interface NSData(Base64Coding)
-- (NSData *)dataByEncodingBase64;
+- (NSData *)dataByEncodingBase64; /* Note: inserts '\n' every 72 chars */
- (NSData *)dataByDecodingBase64;
- (NSString *)stringByEncodingBase64;
- (NSString *)stringByDecodingBase64;
+- (NSData *)dataByEncodingBase64WithLineLength:(unsigned)_lineLength;
+
@end
/*
+2005-02-14 Helge Hess <helge.hess@skyrix.com>
+
+ * NGImap4: changed base64 encoding in Sieve client to fix OGo bug #1228
+ (v4.5.214)
+
2005-02-12 Helge Hess <helge.hess@opengroupware.org>
* NGImap4: reworked qualifier generation, fixed handling of OR