diff options
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/reg-printf.c | 2 | ||||
-rw-r--r-- | stdio-common/vfprintf.c | 9 | ||||
-rw-r--r-- | stdio-common/vfscanf.c | 6 |
3 files changed, 11 insertions, 6 deletions
diff --git a/stdio-common/reg-printf.c b/stdio-common/reg-printf.c index db33a3d..2cb086d 100644 --- a/stdio-common/reg-printf.c +++ b/stdio-common/reg-printf.c @@ -35,7 +35,7 @@ __register_printf_function (spec, converter, arginfo) { if (spec < 0 || spec > (int) UCHAR_MAX) { - errno = EINVAL; + __set_errno (EINVAL); return -1; } diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index b252357..f47eaa2 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -102,7 +102,6 @@ ssize_t __wprintf_pad __P ((FILE *, wchar_t pad, size_t n)); } \ } while (0) # define UNBUFFERED_P(S) ((S)->_IO_file_flags & _IO_UNBUFFERED) -/* This macro must be without parameter! Don't change it. */ #else /* ! USE_IN_LIBIO */ /* This code is for use in the GNU C library. */ # include <stdio.h> @@ -113,7 +112,7 @@ ssize_t __wprintf_pad __P ((FILE *, wchar_t pad, size_t n)); /* Check file argument for consistence. */ \ if (!__validfp(S) || !S->__mode.__write || Format == NULL) \ { \ - errno = EINVAL; \ + __set_errno (EINVAL); \ return -1; \ } \ if (!S->__seen) \ @@ -1431,6 +1430,9 @@ struct helper_file { struct _IO_FILE_plus _f; _IO_FILE *_put_stream; +#ifdef _IO_MTSAFE_IO + _IO_lock_t lock; +#endif }; static int @@ -1483,6 +1485,9 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format, hp->_IO_write_ptr = buf; hp->_IO_write_end = buf + sizeof buf; hp->_IO_file_flags = _IO_MAGIC|_IO_NO_READS; +#ifdef _IO_MTSAFE_IO + hp->_lock = &helper.lock; +#endif _IO_JUMPS (hp) = (struct _IO_jump_t *) &_IO_helper_jumps; /* Now print to helper instead. */ diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index f83fd28..ee2c922 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -66,7 +66,7 @@ Cambridge, MA 02139, USA. */ } while (0) # define memory_error() do { \ _IO_funlockfile (s); \ - errno = ENOMEM; \ + __set_errno (ENOMEM); \ return EOF; \ } while (0) # define ARGCHECK(s, format) \ @@ -97,7 +97,7 @@ Cambridge, MA 02139, USA. */ } while (0) # define memory_error() do { \ funlockfile (s); \ - errno = ENOMEM; \ + __set_errno (ENOMEM); \ return EOF; \ } while (0) # define ARGCHECK(s, format) \ @@ -106,7 +106,7 @@ Cambridge, MA 02139, USA. */ /* Check file argument for consistence. */ \ if (!__validfp (s) || !s->__mode.__read || format == NULL) \ { \ - errno = EINVAL; \ + __set_errno (EINVAL); \ return EOF; \ } \ } while (0) |