about summary refs log tree commit diff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/iofprintf.c51
-rw-r--r--libio/iolibio.h2
-rw-r--r--libio/iopopen.c9
3 files changed, 9 insertions, 53 deletions
diff --git a/libio/iofprintf.c b/libio/iofprintf.c
deleted file mode 100644
index 4dc9d3f661..0000000000
--- a/libio/iofprintf.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU IO Library.
-
-   This library 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, or (at
-   your option) any later version.
-
-   This 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
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this library; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
-
-   As a special exception, if you link this library with files
-   compiled with a GNU compiler to produce an executable, this does
-   not cause the resulting executable to be covered by the GNU General
-   Public License.  This exception does not however invalidate any
-   other reasons why the executable file might be covered by the GNU
-   General Public License.  */
-
-#include "libioP.h"
-
-#ifdef __STDC__
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
-
-int
-#ifdef __STDC__
-_IO_fprintf (_IO_FILE *fp, const char* format, ...)
-#else
-_IO_fprintf (fp, format, va_alist)
-     _IO_FILE *fp;
-     char *format;
-     va_dcl
-#endif
-{
-  int ret;
-  va_list args;
-  CHECK_FILE (fp, -1);
-  _IO_va_start (args, format);
-  ret = _IO_vfprintf (fp, format, args);
-  va_end (args);
-  return ret;
-}
diff --git a/libio/iolibio.h b/libio/iolibio.h
index c1a9184305..1eef384fa8 100644
--- a/libio/iolibio.h
+++ b/libio/iolibio.h
@@ -8,6 +8,8 @@ extern "C" {
 #endif
 
 extern int _IO_fclose __P((_IO_FILE*));
+extern int _IO_new_fclose __P((_IO_FILE*));
+extern int _IO_old_fclose __P((_IO_FILE*));
 extern _IO_FILE *_IO_fdopen __P((int, const char*));
 extern int _IO_fflush __P((_IO_FILE*));
 extern int _IO_fgetpos __P((_IO_FILE*, _IO_fpos_t*));
diff --git a/libio/iopopen.c b/libio/iopopen.c
index 65337f8f28..a03cf636b2 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -98,18 +98,23 @@ _IO_proc_open (fp, command, mode)
     return NULL;
   if (_IO_pipe (pipe_fds) < 0)
     return NULL;
-  if (mode[0] == 'r')
+  if (mode[0] == 'r' && mode[1] == '\0')
     {
       parent_end = pipe_fds[0];
       child_end = pipe_fds[1];
       read_or_write = _IO_NO_WRITES;
     }
-  else
+  else if (mode[0] == 'w' && mode[1] == '\0')
     {
       parent_end = pipe_fds[1];
       child_end = pipe_fds[0];
       read_or_write = _IO_NO_READS;
     }
+  else
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
   ((_IO_proc_file *) fp)->pid = child_pid = _IO_fork ();
   if (child_pid == 0)
     {