diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | libio/fileops.c | 2 | ||||
-rw-r--r-- | libio/iofclose.c | 2 | ||||
-rw-r--r-- | libio/iofwide.c | 2 | ||||
-rw-r--r-- | libio/libioP.h | 4 | ||||
-rw-r--r-- | libio/wfileops.c | 8 |
6 files changed, 20 insertions, 9 deletions
@@ -1,3 +1,14 @@ +2000-08-03 Ulrich Drepper <drepper@redhat.com> + + * libio/iofwide.c (_IO_fwide): Initialize fp->_codecvt as well. + * libio/fileops.c (_IO_new_file_fopen): Use _codecvt not from + _wide_data but from _IO_FILE directly. + * libio/iofclose.c: Likewise. + * libio/wfileops.c: Likewise. + + * libio/genops.c (_IO_default_showmanyc): Change return type to size_t. + * libio/libioP.h: Change prototypes. + 2000-08-03 Greg McGary <greg@mcgary.org> * sysdeps/i386/setjmp.S (__sigsetjmp): Pop our diff --git a/libio/fileops.c b/libio/fileops.c index c3404c1..462ac67 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -289,7 +289,7 @@ _IO_new_file_fopen (fp, filename, mode, is32not64) return NULL; } - cc = &fp->_wide_data->_codecvt; + cc = fp->_codecvt = &fp->_wide_data->_codecvt; /* The functions are always the same. */ *cc = __libio_codecvt; diff --git a/libio/iofclose.c b/libio/iofclose.c index ebe948a..e13a2a3 100644 --- a/libio/iofclose.c +++ b/libio/iofclose.c @@ -61,7 +61,7 @@ _IO_new_fclose (fp) #if _LIBC /* This stream has a wide orientation. This means we have to free the conversion functions. */ - struct _IO_codecvt *cc = &fp->_wide_data->_codecvt; + struct _IO_codecvt *cc = &fp->_codecvt; if (cc->__cd_in.__cd.__steps->__shlib_handle != NULL) { diff --git a/libio/iofwide.c b/libio/iofwide.c index ae4f63f..6c4b265 100644 --- a/libio/iofwide.c +++ b/libio/iofwide.c @@ -114,7 +114,7 @@ _IO_fwide (fp, mode) #ifdef _LIBC { struct gconv_fcts fcts; - struct _IO_codecvt *cc = &fp->_wide_data->_codecvt; + struct _IO_codecvt *cc = fp->_codecvt = &fp->_wide_data->_codecvt; __wcsmbs_clone_conv (&fcts); diff --git a/libio/libioP.h b/libio/libioP.h index 6cc23a6..6d3b775 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -256,7 +256,7 @@ typedef int (*_IO_stat_t) __PMT ((_IO_FILE *, void *)); /* The 'showmany' hook can be used to get an image how much input is available. In many cases the answer will be 0 which means unknown but some cases one can provide real information. */ -typedef int (*_IO_showmanyc_t) __PMT ((_IO_FILE *)); +typedef size_t (*_IO_showmanyc_t) __PMT ((_IO_FILE *)); #define _IO_SHOWMANYC(FP) JUMP0 (__showmanyc, FP) #define _IO_WSHOWMANYC(FP) WJUMP0 (__showmanyc, FP) @@ -404,7 +404,7 @@ extern int _IO_default_stat __P ((_IO_FILE *, void *)); extern _IO_off64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int)); extern int _IO_default_sync __P ((_IO_FILE *)); #define _IO_default_close ((_IO_close_t) _IO_default_sync) -extern int _IO_default_showmanyc __P ((_IO_FILE *)); +extern size_t _IO_default_showmanyc __P ((_IO_FILE *)); extern void _IO_default_imbue __P ((_IO_FILE *, void *)); extern struct _IO_jump_t _IO_file_jumps; diff --git a/libio/wfileops.c b/libio/wfileops.c index 45c9120..9fa91f0 100644 --- a/libio/wfileops.c +++ b/libio/wfileops.c @@ -59,7 +59,7 @@ _IO_wdo_write (fp, data, to_do) const wchar_t *data; _IO_size_t to_do; { - struct _IO_codecvt *cc = &fp->_wide_data->_codecvt; + struct _IO_codecvt *cc = &fp->_codecvt; if (to_do > 0) { @@ -133,7 +133,7 @@ _IO_wfile_underflow (fp) if (fp->_wide_data->_IO_read_ptr < fp->_wide_data->_IO_read_end) return *fp->_wide_data->_IO_read_ptr; - cd = &fp->_wide_data->_codecvt; + cd = &fp->_codecvt; /* Maybe there is something left in the external buffer. */ if (fp->_IO_read_ptr < fp->_IO_read_end) @@ -362,7 +362,7 @@ _IO_wfile_sync (fp) { /* We have to find out how many bytes we have to go back in the external buffer. */ - struct _IO_codecvt *cv = &fp->_wide_data->_codecvt; + struct _IO_codecvt *cv = &fp->_codecvt; _IO_off64_t new_pos; int clen = (*cv->__codecvt_do_encoding) (cv); @@ -466,7 +466,7 @@ _IO_wfile_seekoff (fp, offset, dir, mode) /* Adjust for read-ahead (bytes is buffer). To do this we must find out which position in the external buffer corresponds to the current position in the internal buffer. */ - cv = &fp->_wide_data->_codecvt; + cv = &fp->_codecvt; clen = (*cv->__codecvt_do_encoding) (cv); if (clen > 0) |