/* Buffering read.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
-This program is free software; you can redistribute it and/or modify
+This file is part of GNU Wget.
+
+GNU Wget is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-This program is distributed in the hope that it will be useful,
+GNU Wget is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+along with Wget; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+In addition, as a special exception, the Free Software Foundation
+gives permission to link the code of its release of Wget with the
+OpenSSL project's "OpenSSL" library (or with modified versions of it
+that use the same license as the "OpenSSL" library), and distribute
+the linked executables. You must obey the GNU General Public License
+in all respects for all of the code used other than "OpenSSL". If you
+modify this file, you may extend this exception to your version of the
+file, but you are not obligated to do so. If you do not wish to do
+so, delete this exception statement from your version. */
/* This is a simple implementation of buffering IO-read functions. */
#include <config.h>
#include <stdio.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
#include "wget.h"
#include "rbuf.h"
rbuf->fd = -1;
}
+int
+rbuf_read_bufferful (struct rbuf *rbuf)
+{
+ return fd_read (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer), -1);
+}
+
/* Currently unused -- see RBUF_READCHAR. */
#if 0
/* Function version of RBUF_READCHAR. */
int res;
rbuf->buffer_pos = rbuf->buffer;
rbuf->buffer_left = 0;
- res = iread (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer));
+ res = fd_read (rbuf->fd, rbuf->buffer, sizeof (rbuf->buffer), -1);
if (res <= 0)
return res;
rbuf->buffer_left = res;
return 1;
}
+#define MIN(p,q) (((p) <= (q)) ? (p) : (q))
+
/* Flush RBUF's buffer to WHERE. Flush MAXSIZE bytes at most.
Returns the number of bytes actually copied. If the buffer is
empty, 0 is returned. */
return 0;
else
{
- int howmuch = MINVAL (rbuf->buffer_left, maxsize);
+ int howmuch = MIN (rbuf->buffer_left, maxsize);
if (where)
memcpy (where, rbuf->buffer_pos, howmuch);