summaryrefslogtreecommitdiff
path: root/assert
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-17 04:49:12 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-17 04:49:12 +0000
commit51028f34ceeb7c4c91abc2ac2b818afeaa671b91 (patch)
tree165d143b47736e6438b31cfb98d80fdc11cdcbb5 /assert
parentd79e55530924e8fc9b33991ab4df33653480ec0a (diff)
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')
-rw-r--r--assert/assert-perr.c27
-rw-r--r--assert/assert.c27
2 files changed, 42 insertions, 12 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 ();
}
diff --git a/assert/assert.c b/assert/assert.c
index 81ad080413..df382456e3 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -17,15 +17,16 @@
02111-1307 USA. */
#include <assert.h>
+#include <libintl.h>
#include <stdio.h>
#include <stdlib.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
@@ -44,17 +45,31 @@ void
__assert_fail (const char *assertion, const char *file, unsigned int line,
const char *function)
{
+ char *buf;
+
#ifdef FATAL_PREPARE
FATAL_PREPARE;
#endif
+ (void) __asprintf (&buf, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"),
+ __progname, __progname[0] ? ": " : "",
+ file, line,
+ function ? function : "", function ? ": " : "",
+ assertion);
+
/* Print the message. */
- (void) fprintf (stderr, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"),
- __progname, __progname[0] ? ": " : "",
- file, line,
- function ? function : "", function ? ": " : "",
- assertion);
+#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 ();
}