aboutsummaryrefslogtreecommitdiff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/Makefile8
-rw-r--r--libio/iosetvbuf.c2
-rw-r--r--libio/oldiopopen.c9
-rw-r--r--libio/wfileops.c4
-rw-r--r--libio/wgenops.c14
5 files changed, 19 insertions, 18 deletions
diff --git a/libio/Makefile b/libio/Makefile
index 6fcde40814..6759b84f1d 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -30,7 +30,6 @@ routines := \
ioseekoff ioseekpos iosetbuffer iosetvbuf iosprintf ioungetc \
iovsprintf iovsscanf \
iofgetpos64 iofopen64 iofsetpos64 \
- oldiofgetpos oldiofgetpos64 oldiofsetpos oldiofsetpos64 \
fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \
iofputws iofputws_u iogetwline iowpadn ioungetwc putwc putwc_u \
putchar putchar_u swprintf vwprintf wprintf wscanf fwscanf vwscanf \
@@ -51,7 +50,8 @@ include ../Makeconfig
ifeq ($(versioning),yes)
routines += oldiofopen oldiofdopen oldiofclose oldiopopen oldpclose \
- oldtmpfile
+ oldtmpfile oldiofgetpos oldiofgetpos64 oldiofsetpos \
+ oldiofsetpos64
endif
ifneq (,$(filter %REENTRANT, $(defines)))
@@ -69,7 +69,9 @@ aux += oldfileops oldstdfiles
endif
shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \
- oldstdfiles oldiopopen oldpclose oldtmpfile
+ oldstdfiles oldiopopen oldpclose oldtmpfile \
+ oldiofgetpos oldiofgetpos64 oldiofsetpos \
+ oldiofsetpos64
distribute := iolibio.h libioP.h strfile.h Banner
diff --git a/libio/iosetvbuf.c b/libio/iosetvbuf.c
index b9ef31a278..5dc5eedffe 100644
--- a/libio/iosetvbuf.c
+++ b/libio/iosetvbuf.c
@@ -90,7 +90,7 @@ _IO_setvbuf (fp, buf, mode, size)
goto unlock_return;
}
result = _IO_SETBUF (fp, buf, size) == NULL ? EOF : 0;
- if (result == 0 && fp->_mode > 0)
+ if (result == 0 && fp->_mode == 0)
/* We also have to set the buffer using the wide char function. */
result = ((*fp->_wide_data->_wide_vtable->__setbuf) (fp, buf, size) == NULL
? EOF : 0);
diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c
index c4116baae3..556a9ff86f 100644
--- a/libio/oldiopopen.c
+++ b/libio/oldiopopen.c
@@ -140,6 +140,8 @@ _IO_old_proc_open (fp, command, mode)
if (child_pid == 0)
{
int child_std_end = mode[0] == 'r' ? 1 : 0;
+ struct _IO_proc_file *p;
+
_IO_close (parent_end);
if (child_end != child_std_end)
{
@@ -149,11 +151,8 @@ _IO_old_proc_open (fp, command, mode)
/* POSIX.2: "popen() shall ensure that any streams from previous
popen() calls that remain open in the parent process are closed
in the new child process." */
- while (old_proc_file_chain)
- {
- _IO_close (_IO_fileno ((_IO_FILE *) old_proc_file_chain));
- old_proc_file_chain = old_proc_file_chain->next;
- }
+ for (p = old_proc_file_chain; p; p = p->next)
+ _IO_close (_IO_fileno ((_IO_FILE *) p));
_IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0);
_IO__exit (127);
diff --git a/libio/wfileops.c b/libio/wfileops.c
index b040b97491..f3f8bf25dd 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -421,7 +421,7 @@ _IO_wfile_seekoff (fp, offset, dir, mode)
if (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_write_base
|| _IO_in_put_mode (fp))
- if (_IO_switch_to_get_mode (fp))
+ if (_IO_switch_to_wget_mode (fp))
return WEOF;
if (fp->_wide_data->_IO_buf_base == NULL)
@@ -698,7 +698,7 @@ struct _IO_jump_t _IO_wfile_jumps =
JUMP_INIT(overflow, (_IO_overflow_t) _IO_wfile_overflow),
JUMP_INIT(underflow, (_IO_underflow_t) _IO_wfile_underflow),
JUMP_INIT(uflow, (_IO_underflow_t) _IO_wdefault_uflow),
- JUMP_INIT(pbackfail, _IO_default_pbackfail),
+ JUMP_INIT(pbackfail, (_IO_pbackfail_t) _IO_wdefault_pbackfail),
JUMP_INIT(xsputn, _IO_wfile_xsputn),
JUMP_INIT(xsgetn, _IO_file_xsgetn),
JUMP_INIT(seekoff, _IO_wfile_seekoff),
diff --git a/libio/wgenops.c b/libio/wgenops.c
index 496d080014..6144a1014e 100644
--- a/libio/wgenops.c
+++ b/libio/wgenops.c
@@ -239,12 +239,12 @@ __wuflow (fp)
_IO_FILE *fp;
{
if (fp->_mode < 0 || (fp->_mode == 0 && _IO_fwide (fp, 1) != 1))
- return EOF;
+ return WEOF;
if (fp->_mode == 0)
_IO_fwide (fp, 1);
if (_IO_in_put_mode (fp))
- if (_IO_switch_to_get_mode (fp) == EOF)
+ if (_IO_switch_to_wget_mode (fp) == EOF)
return WEOF;
if (fp->_wide_data->_IO_read_ptr < fp->_wide_data->_IO_read_end)
return *fp->_wide_data->_IO_read_ptr++;
@@ -270,10 +270,10 @@ __wunderflow (fp)
_IO_FILE *fp;
{
if (fp->_mode < 0 || (fp->_mode == 0 && _IO_fwide (fp, 1) != 1))
- return EOF;
+ return WEOF;
if (_IO_in_put_mode (fp))
- if (_IO_switch_to_wget_mode (fp) == WEOF)
+ if (_IO_switch_to_wget_mode (fp) == EOF)
return WEOF;
if (fp->_wide_data->_IO_read_ptr < fp->_wide_data->_IO_read_end)
return *fp->_wide_data->_IO_read_ptr;
@@ -286,7 +286,7 @@ __wunderflow (fp)
if (_IO_have_markers (fp))
{
if (save_for_wbackup (fp, fp->_wide_data->_IO_read_end))
- return EOF;
+ return WEOF;
}
else if (_IO_have_backup (fp))
_IO_free_wbackup_area (fp);
@@ -447,7 +447,7 @@ _IO_switch_to_wget_mode (fp)
_IO_FILE *fp;
{
if (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_write_base)
- if (_IO_OVERFLOW (fp, EOF) == EOF)
+ if (_IO_OVERFLOW (fp, WEOF) == WEOF)
return EOF;
if (_IO_in_backup (fp))
fp->_wide_data->_IO_read_base = fp->_wide_data->_IO_backup_base;
@@ -663,7 +663,7 @@ _IO_init_wmarker (marker, fp)
{
marker->_sbuf = fp;
if (_IO_in_put_mode (fp))
- _IO_switch_to_get_mode (fp);
+ _IO_switch_to_wget_mode (fp);
if (_IO_in_backup (fp))
marker->_pos = fp->_wide_data->_IO_read_ptr - fp->_wide_data->_IO_read_end;
else