Author: rfm
Date: Sat Jan 23 16:30:05 2016
New Revision: 39310
URL: http://svn.gna.org/viewcvs/gnustep?rev=39310&view=rev
Log:
quick hack to avoid splitting 'boundary' parameter values
Modified:
libs/base/trunk/Source/Additions/GSMime.m
Modified: libs/base/trunk/Source/Additions/GSMime.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/Additions/GSMime.m?rev=39310&r1=39309&r2=39310&view=diff
==============================================================================
--- libs/base/trunk/Source/Additions/GSMime.m (original)
+++ libs/base/trunk/Source/Additions/GSMime.m Sat Jan 23 16:30:05 2016
@@ -4280,7 +4280,19 @@
k = [k lowercaseString];
}
offset = appendBytes(md, offset, fold, ";", 1);
- offset = appendBytes(md, offset, fold, " ", 1);
+
+ /* Crude heuristic ... if the length of the value will definitely be
+ * too long to fit on a line, fold right now.
+ */
+ if (fold > 0 && offset + [k length] > fold)
+ {
+ [md appendBytes: "\r\n " length: 3];
+ offset = 1;
+ }
+ else
+ {
+ offset = appendBytes(md, offset, fold, " ", 1);
+ }
offset = appendString(md, offset, fold, k, &ok);
if (ok == NO)
{
@@ -4289,6 +4301,15 @@
k, n, fold);
}
offset = appendBytes(md, offset, fold, "=", 1);
+
+ /* Crude heuristic ... if the length of the value will definitely be
+ * too long to fit on a line, fold right now.
+ */
+ if (fold > 0 && offset + [v length] > fold)
+ {
+ [md appendBytes: "\r\n " length: 3];
+ offset = 1;
+ }
offset = appendString(md, offset, fold, v, &ok);
if (ok == NO)
{
@@ -4381,8 +4402,10 @@
m = [[_GSMutableInsensitiveDictionary alloc] initWithCapacity: c];
while ((k = [e nextObject]) != nil)
{
- [m setObject: [d objectForKey: k]
- forKey: [headerClass makeToken: k preservingCase: YES]];
+ NSString *v = [d objectForKey: k];
+
+ k = [headerClass makeToken: k preservingCase: YES];
+ [m setObject: v forKey: k];
}
}
DESTROY(params);
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs