]> sjero.net Git - wget/commitdiff
[svn] Use a single version of RBUF_READCHAR.
authorhniksic <devnull@localhost>
Tue, 5 Dec 2000 23:50:34 +0000 (15:50 -0800)
committerhniksic <devnull@localhost>
Tue, 5 Dec 2000 23:50:34 +0000 (15:50 -0800)
src/ChangeLog
src/rbuf.c
src/rbuf.h

index aca13ab3386f2afeeb5c0afe57890d786f309342..1255ab38d2a58ada52aac10cb8ca24170024ff62 100644 (file)
@@ -1,3 +1,10 @@
+2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * rbuf.h: Implement only a single version of RBUF_READCHAR, using
+       rbuf_read_bufferful when the buffer is depleted.
+
+       * rbuf.c (rbuf_read_bufferful): New function.
+
 2000-12-06  Hrvoje Niksic  <hniksic@arsdigita.com>
 
        * gen_sslfunc.h: Use ansi2knr style function declarations.
index b0ed3cab0f6bba03de870eb6e7ee7e9877253e19..831b4b6cc0b87a0ec7b66c4ccbb6b346af86b5db 100644 (file)
@@ -58,6 +58,17 @@ rbuf_uninitialize (struct rbuf *rbuf)
   rbuf->fd = -1;
 }
 
+int
+rbuf_read_bufferful (struct rbuf *rbuf)
+{
+#ifdef HAVE_SSL
+  if (rbuf->ssl)
+    return ssl_iread (rbuf->ssl, rbuf->buffer, sizeof (rbuf->buffer));
+  else
+#endif
+    return iread (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer));
+}
+
 /* Currently unused -- see RBUF_READCHAR.  */
 #if 0
 /* Function version of RBUF_READCHAR.  */
index 415933ce03489927613673426b986dd0b1a3359a..df0b3d334d44950979ad811ca4c527c7e4820e75 100644 (file)
@@ -49,39 +49,19 @@ struct rbuf
    result of historical implementation of header code.  The macro
    should return the character or EOF, and in case of error store it
    to rbuf->err or something.  */
-#ifdef HAVE_SSL
-/* SSL version of rbuf. If rbuf.ssl isn't NULL use ssl_iread instead 
-   of iread  */
-#define RBUF_READCHAR(rbuf, store)                                     \
-((rbuf)->buffer_left                                                   \
- ? (--(rbuf)->buffer_left,                                             \
-    *((char *) (store)) = *(rbuf)->buffer_pos++, 1)                    \
- : ((rbuf)->buffer_pos = (rbuf)->buffer,                               \
-    ((((rbuf)->internal_dont_touch_this                                        \
-               = (rbuf->ssl == NULL) ? (iread ((rbuf)->fd, (rbuf)->buffer,                             \
-               sizeof ((rbuf)->buffer))) : (ssl_iread ((rbuf)->ssl, (rbuf)->buffer,            \
-               sizeof ((rbuf)->buffer))) ) <= 0)                               \
-     ? (rbuf)->internal_dont_touch_this                                        \
-     : ((rbuf)->buffer_left = (rbuf)->internal_dont_touch_this - 1,    \
-       *((char *) (store)) = *(rbuf)->buffer_pos++,                    \
-       1))))
-#else
+
 #define RBUF_READCHAR(rbuf, store)                                     \
 ((rbuf)->buffer_left                                                   \
  ? (--(rbuf)->buffer_left,                                             \
     *((char *) (store)) = *(rbuf)->buffer_pos++, 1)                    \
  : ((rbuf)->buffer_pos = (rbuf)->buffer,                               \
     ((((rbuf)->internal_dont_touch_this                                        \
-       = iread ((rbuf)->fd, (rbuf)->buffer,                            \
-               sizeof ((rbuf)->buffer))) <= 0)                         \
+       = rbuf_read_bufferful (rbuf)) <= 0)                             \
      ? (rbuf)->internal_dont_touch_this                                        \
      : ((rbuf)->buffer_left = (rbuf)->internal_dont_touch_this - 1,    \
        *((char *) (store)) = *(rbuf)->buffer_pos++,                    \
        1))))
 
-
-#endif /* HAVE_SSL */
-
 /* Return the file descriptor of RBUF.  */
 #define RBUF_FD(rbuf) ((rbuf)->fd)
 
@@ -97,4 +77,7 @@ int rbuf_peek PARAMS ((struct rbuf *, char *));
 int rbuf_flush PARAMS ((struct rbuf *, char *, int));
 void rbuf_discard PARAMS ((struct rbuf *));
 
+/* Internal, but used by the macro. */
+int rbuf_read_bufferful PARAMS ((struct rbuf *));
+
 #endif /* RBUF_H */