mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
Aim to improve compatibility with old/buggy parsers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39395 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
e27363d97d
commit
3db4287285
2 changed files with 16 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
2016-02-18 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/Additions/GSMime.m:
|
||||
Fold using tabs between key=value tokens in structured headers
|
||||
in the hope that it will improve compatibility with code which
|
||||
doesn't cope well with a space as the folding character.
|
||||
|
||||
2016-02-15 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSFileManager.m: Use NSDebugLog for most debug warnings
|
||||
|
|
|
@ -3845,7 +3845,7 @@ appendBytes(NSMutableData *m, NSUInteger offset, NSUInteger fold,
|
|||
uint8_t wsp;
|
||||
uint8_t buf[3];
|
||||
|
||||
/* Modern folding preserved exact whitespace characters.
|
||||
/* Modern folding preserves exact whitespace characters.
|
||||
*/
|
||||
if (size > 0 && isWSP(bytes[0]))
|
||||
{
|
||||
|
@ -4289,10 +4289,13 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
|
|||
/* Crude heuristic ...
|
||||
* if the length of the key=value will definitely be
|
||||
* too long to fit on a line, fold right now.
|
||||
* Since we are producing a key=value pair in a structured
|
||||
* field, we use a tab to fold to maximise the chances of a
|
||||
* parser understanding it.
|
||||
*/
|
||||
if (fold > 0 && offset + kLength + vLength + 1 >= fold)
|
||||
{
|
||||
[md appendBytes: "\r\n " length: 3];
|
||||
[md appendBytes: "\r\n\t" length: 3];
|
||||
offset = 1;
|
||||
}
|
||||
else
|
||||
|
@ -4310,10 +4313,13 @@ appendString(NSMutableData *m, NSUInteger offset, NSUInteger fold,
|
|||
|
||||
/* Crude heuristic ... if the length of the value will definitely be
|
||||
* too long to fit on a line, fold right now.
|
||||
* Since we are producing a key=value pair in a structured
|
||||
* field, we use a tab to fold to maximise the chances of a
|
||||
* parser understanding it.
|
||||
*/
|
||||
if (fold > 0 && offset + vLength > fold)
|
||||
{
|
||||
[md appendBytes: "\r\n " length: 3];
|
||||
[md appendBytes: "\r\n\t" length: 3];
|
||||
offset = 1;
|
||||
}
|
||||
offset = appendString(md, offset, fold, v, &ok);
|
||||
|
|
Loading…
Reference in a new issue