if(data->state.leading_unfold) {
/* immediately after an unfold, keep only a single whitespace */
- const size_t iblen = blen;
while(consumed && ISBLANK(buf[0])) {
consumed--;
buf++;
blen--;
}
if(consumed) {
- if(iblen > blen) {
- /* take one step back */
- consumed++;
- buf--;
- blen++;
- }
+ /* insert a single space */
+ result = curlx_dyn_addn(&data->state.headerb, " ", 1);
+ if(result)
+ return result;
data->state.leading_unfold = FALSE; /* done now */
}
}
Server: test-server/%CR
fake%CR
folded%CR
+Tabs: tab-instead/%TAB%CR
+%TABonly%CR
+%TAB mixed%CR
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT%CR
ETag: "21025-dc7-39462498"%CR
Content-Length: 6%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/ fake folded
+Tabs: tab-instead/ only mixed
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Content-Length: 6
folding a%repeat[5 x ]%
line
Content-Length: 0
+Test:%TAB
+%TAB%SP
+%TABword
Set-Cookie: onecookie=data;
Set-Cookie: secondcookie=2data;
Set-Cookie: cookie3=data3;
Fold == is folding a line
Blank ==%SP
Blank2 ==%SP
+ Test == word
</stdout>
</verify>
</testcase>
"fold",
"blank",
"Blank2",
+ "Test",
NULL
};