diff options
Diffstat (limited to 'libio')
-rw-r--r-- | libio/Makefile | 8 | ||||
-rw-r--r-- | libio/iosetvbuf.c | 2 | ||||
-rw-r--r-- | libio/oldiopopen.c | 9 | ||||
-rw-r--r-- | libio/wfileops.c | 4 | ||||
-rw-r--r-- | libio/wgenops.c | 14 |
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 |