about summary refs log tree commit diff
path: root/stdio/memstream.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-04-30 22:00:59 +0000
committerRoland McGrath <roland@gnu.org>2002-04-30 22:00:59 +0000
commita8c017767721fec8fd4ee53c1937e31e35dfac08 (patch)
tree11c43b6158f98ebcce0ab0b5555faa3a35d43187 /stdio/memstream.c
parent8543f93de2a52f1e314051aa20f7394a7c13366f (diff)
downloadglibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.tar.gz
glibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.tar.xz
glibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.zip
2002-04-30 Roland McGrath <roland@frob.com>
	Removed old GNU stdio implementation; GNU libio is now the only option.
	* configure.in: Removed --enable-libio option and @stdio@ subst var.
	Define USE_IN_LIBIO unconditionally.
	* configure: Regenerated.
	* Makeconfig (stdio): Set to libio by default.
	* config.make.in (stdio): Variable removed.
	* sysdeps/unix/sysv/linux/configure.in: Don't set $stdio.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* sysdeps/mach/hurd/configure.in: Don't test $stdio.
	* sysdeps/mach/hurd/configure: Regenerated.
	* stdio/.cvsignore: File removed.
	* stdio/Makefile: File removed.
	* stdio/Versions: File removed.
	* stdio/__fbufsize.c: File removed.
	* stdio/__flbf.c: File removed.
	* stdio/__fpending.c: File removed.
	* stdio/__fpurge.c: File removed.
	* stdio/__freadable.c: File removed.
	* stdio/__freading.c: File removed.
	* stdio/__fsetlocking.c: File removed.
	* stdio/__fwritable.c: File removed.
	* stdio/__fwriting.c: File removed.
	* stdio/clearerr.c: File removed.
	* stdio/fclose.c: File removed.
	* stdio/fcloseall.c: File removed.
	* stdio/feof.c: File removed.
	* stdio/ferror.c: File removed.
	* stdio/fflush.c: File removed.
	* stdio/fgetc.c: File removed.
	* stdio/fgetpos.c: File removed.
	* stdio/fgets.c: File removed.
	* stdio/fileno.c: File removed.
	* stdio/fmemopen.c: File removed.
	* stdio/fopen.c: File removed.
	* stdio/fopncook.c: File removed.
	* stdio/fputc.c: File removed.
	* stdio/fputs.c: File removed.
	* stdio/fread.c: File removed.
	* stdio/freopen.c: File removed.
	* stdio/fseek.c: File removed.
	* stdio/fsetpos.c: File removed.
	* stdio/ftell.c: File removed.
	* stdio/fwrite.c: File removed.
	* stdio/getc.c: File removed.
	* stdio/getchar.c: File removed.
	* stdio/getdelim.c: File removed.
	* stdio/gets.c: File removed.
	* stdio/glue.c: File removed.
	* stdio/internals.c: File removed.
	* stdio/linewrap.c: File removed.
	* stdio/linewrap.h: File removed.
	* stdio/memstream.c: File removed.
	* stdio/newstream.c: File removed.
	* stdio/obstream.c: File removed.
	* stdio/putc.c: File removed.
	* stdio/putchar.c: File removed.
	* stdio/puts.c: File removed.
	* stdio/rewind.c: File removed.
	* stdio/setbuf.c: File removed.
	* stdio/setbuffer.c: File removed.
	* stdio/setlinebuf.c: File removed.
	* stdio/setvbuf.c: File removed.
	* stdio/stdio.h: File removed.
	* stdio/ungetc.c: File removed.
	* stdio/vasprintf.c: File removed.
	* stdio/vscanf.c: File removed.
	* stdio/vsnprintf.c: File removed.
	* stdio/vsprintf.c: File removed.
	* stdio/vsscanf.c: File removed.
	* sysdeps/generic/defs.c: File removed.
	* sysdeps/generic/fdopen.c: File removed.
	* sysdeps/generic/pipestream.c: File removed.
	* sysdeps/generic/stdio_init.c: File removed.
	* sysdeps/generic/sysd-stdio.c: File removed.
	* sysdeps/generic/vdprintf.c: File removed.
	* sysdeps/mach/hurd/defs.c: File removed.
	* sysdeps/mach/hurd/fdopen.c: File removed.
	* sysdeps/mach/hurd/pipestream.c: File removed.
	* sysdeps/mach/hurd/stdio_init.c: File removed.
	* sysdeps/mach/hurd/sysd-stdio.c: File removed.
	* sysdeps/mach/hurd/vdprintf.c: File removed.
	* sysdeps/posix/defs.c: File removed.
	* sysdeps/posix/fdopen.c: File removed.
	* sysdeps/posix/pipestream.c: File removed.
	* sysdeps/posix/stdio_init.c: File removed.
	* sysdeps/posix/vdprintf.c: File removed.
	* sysdeps/unix/pipestream.c: File removed.
	* sysdeps/unix/sysv/sysd-stdio.c: File removed.
	* sysdeps/unix/sysv/sco3.2.4/pipestream.c: File removed.
	* sysdeps/unix/sysv/sysv4/pipestream.c: File removed.
Diffstat (limited to 'stdio/memstream.c')
-rw-r--r--stdio/memstream.c176
1 files changed, 0 insertions, 176 deletions
diff --git a/stdio/memstream.c b/stdio/memstream.c
deleted file mode 100644
index b400bb7d27..0000000000
--- a/stdio/memstream.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-struct memstream_info
-  {
-    char **buffer;
-    size_t *bufsize;
-  };
-
-/* Enlarge STREAM's buffer.  */
-static void
-enlarge_buffer (register FILE *stream, int c)
-{
-  struct memstream_info *info = (struct memstream_info *) stream->__cookie;
-  size_t need;
-
-  if (stream->__put_limit != stream->__buffer)
-    /* Record how much has actually been written into the buffer.  */
-    *info->bufsize = stream->__bufp - stream->__buffer;
-
-  if (stream->__target != -1
-      && (size_t) stream->__target > *info->bufsize)
-    /* Our target (where the buffer maps to) is always zero except when
-       the user just did a SEEK_END fseek.  If he sought within the
-       buffer, we need do nothing and will zero the target below.  If he
-       sought past the end of the object, grow and zero-fill the buffer
-       up to the target address.  */
-    need = stream->__target;
-  else
-    need = *info->bufsize;
-
-  /* We always need an extra character in the buffer.  Either we are
-     writing C, or we are flushing and need to write a NUL terminator.  */
-  ++need;
-
-  if (stream->__bufsize < need)
-    {
-      /* Enlarge the buffer.  */
-      char *newbuf;
-      size_t newsize;
-      if (stream->__bufsize * 2 < need)
-	newsize = need;
-      else
-	newsize = stream->__bufsize * 2;
-      newbuf = (char *) realloc ((void *) stream->__buffer, newsize);
-      if (newbuf == NULL)
-	{
-	  stream->__error = 1;
-	  return;
-	}
-      *info->buffer = stream->__buffer = newbuf;
-      stream->__bufsize = newsize;
-    }
-
-  stream->__target = stream->__offset = 0;
-  stream->__get_limit = stream->__bufp = stream->__buffer + *info->bufsize;
-  stream->__put_limit = stream->__buffer + stream->__bufsize;
-
-  need -= stream->__bufp - stream->__buffer + 1;
-  if (need > 0)
-    {
-      /* We are extending the buffer after an fseek; zero-fill new space.  */
-      memset (stream->__bufp, '\0', need);
-      stream->__bufp += need;
-    }
-
-  if (c != EOF)
-    *stream->__bufp++ = (unsigned char) c;
-  else
-    *stream->__bufp = '\0';
-}
-
-/* Seek function for memstreams.
-   There is no external state to munge.  */
-
-static int
-seek (void *cookie, fpos_t *pos, int whence)
-{
-  switch (whence)
-    {
-    case SEEK_SET:
-    case SEEK_CUR:
-      return 0;
-
-    case SEEK_END:
-      /* Return the position relative to the end of the object.
-	 fseek has just flushed us, so the info is consistent.  */
-      *pos += *((struct memstream_info *) cookie)->bufsize;
-      return 0;
-
-    default:
-      __libc_fatal ("memstream::seek called with bogus WHENCE\n");
-      return -1;
-    }
-}
-
-static int
-free_info (void *cookie)
-{
-#if 0
-  struct memstream_info *info = (struct memstream_info *) cookie;
-  char *buf;
-
-  buf = (char *) realloc ((PTR) *info->buffer, *info->bufsize);
-  if (buf != NULL)
-    *info->buffer = buf;
-#endif
-
-  free (cookie);
-
-  return 0;
-}
-
-/* Open a stream that writes into a malloc'd buffer that is expanded as
-   necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
-   and the number of characters written on fflush or fclose.  */
-FILE *
-open_memstream (bufloc, sizeloc)
-     char **bufloc;
-     size_t *sizeloc;
-{
-  FILE *stream;
-  struct memstream_info *info;
-
-  if (bufloc == NULL || sizeloc == NULL)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  stream = fmemopen ((char *) NULL, BUFSIZ, "w+");
-  if (stream == NULL)
-    return NULL;
-
-  info = (struct memstream_info *) malloc (sizeof (struct memstream_info));
-  if (info == NULL)
-    {
-      int save = errno;
-      (void) fclose (stream);
-      __set_errno (save);
-      return NULL;
-    }
-
-  stream->__room_funcs.__output = enlarge_buffer;
-  stream->__io_funcs.__seek = seek;
-  stream->__io_funcs.__close = free_info;
-  stream->__cookie = (void *) info;
-  stream->__userbuf = 1;
-
-  info->buffer = bufloc;
-  info->bufsize = sizeloc;
-
-  *bufloc = stream->__buffer;
-
-  return stream;
-}