diff options
Diffstat (limited to 'misc/error.c')
-rw-r--r-- | misc/error.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/misc/error.c b/misc/error.c index 86d49a5..8306fd5 100644 --- a/misc/error.c +++ b/misc/error.c @@ -28,6 +28,7 @@ #include <libintl.h> #ifdef _LIBC # include <wchar.h> +# define mbsrtowcs __mbsrtowcs #endif #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC @@ -225,7 +226,11 @@ error (status, errnum, message, va_alist) fflush (stdout); #ifdef _LIBC - flockfile (stderr); +# ifdef USE_IN_LIBIO + _IO_flockfile (stderr); +# else + __flockfile (stderr); +# endif #endif if (error_print_progname) (*error_print_progname) (); @@ -242,9 +247,6 @@ error (status, errnum, message, va_alist) #ifdef VA_START VA_START (args, message); error_tail (status, errnum, message, args); -# ifdef _LIBC - funlockfile (stderr); -# endif #else fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); @@ -256,6 +258,14 @@ error (status, errnum, message, va_alist) if (status) exit (status); #endif + +#ifdef _LIBC +# ifdef USE_IN_LIBIO + _IO_funlockfile (stderr); +# else + __funlockfile (stderr); +# endif +#endif } /* Sometimes we want to have at most one error per line. This @@ -297,7 +307,11 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist) fflush (stdout); #ifdef _LIBC - flockfile (stderr); +# ifdef USE_IN_LIBIO + _IO_flockfile (stderr); +# else + __flockfile (stderr); +# endif #endif if (error_print_progname) (*error_print_progname) (); @@ -324,9 +338,6 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist) #ifdef VA_START VA_START (args, message); error_tail (status, errnum, message, args); -# ifdef _LIBC - funlockfile (stderr); -# endif #else fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); @@ -338,6 +349,14 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist) if (status) exit (status); #endif + +#ifdef _LIBC +# ifdef USE_IN_LIBIO + _IO_funlockfile (stderr); +# else + __funlockfile (stderr); +# endif +#endif } #ifdef _LIBC |