+2002-01-14 Hrvoje Niksic <hniksic@arsdigita.com>
+
+ * headers.c (header_get): Strip trailing whitespace from the
+ header.
+
2002-01-14 Hrvoje Niksic <hniksic@arsdigita.com>
* url.c (parse_uname): URL-decode *USER and *PASSWD.
as much memory as necessary for it to fit. It need not contain a
`:', thus you can use it to retrieve, say, HTTP status line.
- The trailing CRLF or LF are stripped from the header, and it is
- zero-terminated. #### Is this well-behaved? */
+ All trailing whitespace is stripped from the header, and it is
+ zero-terminated. */
int
header_get (struct rbuf *rbuf, char **hdr, enum header_get_flags flags)
{
if (next == '\t' || next == ' ')
continue;
}
- /* The header ends. */
+
+ /* Strip trailing whitespace. (*hdr)[i] is the newline;
+ decrement I until it points to the last available
+ whitespace. */
+ while (i > 0 && ISSPACE ((*hdr)[i - 1]))
+ --i;
(*hdr)[i] = '\0';
- /* Get rid of '\r'. */
- if (i > 0 && (*hdr)[i - 1] == '\r')
- (*hdr)[i - 1] = '\0';
break;
}
}