diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-08-17 04:49:12 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-08-17 04:49:12 +0000 |
commit | 51028f34ceeb7c4c91abc2ac2b818afeaa671b91 (patch) | |
tree | 165d143b47736e6438b31cfb98d80fdc11cdcbb5 /assert/assert-perr.c | |
parent | d79e55530924e8fc9b33991ab4df33653480ec0a (diff) | |
download | glibc-51028f34ceeb7c4c91abc2ac2b818afeaa671b91.tar.gz glibc-51028f34ceeb7c4c91abc2ac2b818afeaa671b91.tar.xz glibc-51028f34ceeb7c4c91abc2ac2b818afeaa671b91.zip |
Update.
* libio/tst-ungetwc2.c (main): Define str const. * include/wchar.h: Add prototypes for __fwprintf and __vfwprintf. * libio/fwprintf.c: Also define __fwprintf. * stdio-common/vfprintf.c [COMPILE_WPRINTF]: Also define __vfwprintf. * argp/argp-fmtstream.c: Handle wide oriented stderr stream. * assert/assert-perr.c: Likewise. * assert/assert.c: Likewise. * gmon/gmon.c: Likewise. * inet/rcmd.c: Likewise. * malloc/obstack.c: Likewise. * misc/err.c: Likewise. * misc/error.c: Likewise. * misc/getpass.c: Likewise. * posix/getopt.c: Likewise. * resolv/res_hconf.c: Likewise. * stdio-common/perror.c: Likewise. * stdio-common/psignal.c: Likewise. * stdlib/fmtmsg.c: Likewise. * sunrpc/auth_unix.c: Likewise. * sunrpc/clnt_perr.c: Likewise. * sunrpc/clnt_tcp.c: Likewise. * sunrpc/clnt_udp.c: Likewise. * sunrpc/clnt_unix.c: Likewise. * sunrpc/svc_simple.c: Likewise. * sunrpc/svc_tcp.c: Likewise. * sunrpc/svc_udp.c: Likewise. * sunrpc/svc_unix.c: Likewise. * sunrpc/xdr.c: Likewise. * sunrpc/xdr_array.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_ref.c: Likewise. * sysdeps/generic/wordexp.c: Likewise. * misc/err.c: Handle wide oriented stderr stream.
Diffstat (limited to 'assert/assert-perr.c')
-rw-r--r-- | assert/assert-perr.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/assert/assert-perr.c b/assert/assert-perr.c index 436a9ce8c3..597ac5efb4 100644 --- a/assert/assert-perr.c +++ b/assert/assert-perr.c @@ -17,16 +17,17 @@ 02111-1307 USA. */ #include <assert.h> +#include <libintl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sysdep.h> -#include <libintl.h> extern const char *__progname; #ifdef USE_IN_LIBIO +# include <wchar.h> # include <libio/iolibio.h> # define fflush(s) _IO_fflush (s) #endif @@ -46,17 +47,31 @@ __assert_perror_fail (int errnum, const char *function) { char errbuf[1024]; + char *buf; + #ifdef FATAL_PREPARE FATAL_PREPARE; #endif + (void) __asprintf (&buf, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"), + __progname, __progname[0] ? ": " : "", + file, line, + function ? function : "", function ? ": " : "", + __strerror_r (errnum, errbuf, sizeof errbuf)); + /* Print the message. */ - (void) fprintf (stderr, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"), - __progname, __progname[0] ? ": " : "", - file, line, - function ? function : "", function ? ": " : "", - __strerror_r (errnum, errbuf, sizeof errbuf)); +#ifdef USE_IN_LIBIO + if (_IO_fwide (stderr, 0) > 0) + (void) __fwprintf (stderr, L"%s", buf); + else +#endif + (void) fputs (buf, stderr); + (void) fflush (stderr); + /* We have to free the buffer since the appplication might catch the + SIGABRT. */ + free (buf); + abort (); } |