]> sjero.net Git - wget/commitdiff
[svn] Strip trailing whitespace in header_process().
authorhniksic <devnull@localhost>
Mon, 14 Jan 2002 15:17:34 +0000 (07:17 -0800)
committerhniksic <devnull@localhost>
Mon, 14 Jan 2002 15:17:34 +0000 (07:17 -0800)
Published in <sxsadvh0xpz.fsf@florida.arsdigita.de>.

src/ChangeLog
src/headers.c

index f75634a33c446f9f2155e293a66d630d49e8f36f..9bec4d66d336bd4be0035e947259ba3e865cb77d 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 7f8693a31ef4983f05878f8cdbef9e9b804de512..4f65c2b50e88dd06d195238c5c29b3b4d45ce1c7 100644 (file)
@@ -64,8 +64,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
    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)
 {
@@ -101,11 +101,13 @@ 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;
            }
        }