summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-01-08 16:44:19 +0000
committerJim Meyering <jim@meyering.net>2000-01-08 16:44:19 +0000
commit3e6339641eedb691ab9a8f2435b972aac725ea5c (patch)
treeb166a53db73057d680775b40f0132ea00c1e87e1
parentf446a6bac98b1b42be5b5f4f16d909e8bbe478c3 (diff)
downloadgnulib-3e6339641eedb691ab9a8f2435b972aac725ea5c.tar.gz
(error): Use __strerror_r's return value only if HAVE_WORKING_STRERROR_R.
(error_at_line): Likewise.
-rw-r--r--lib/error.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/error.c b/lib/error.c
index 53b650c578..676ce1d685 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
- Copyright (C) 1990,91,92,93,94,95,96,97,98, 99 Free Software Foundation, Inc.
+ Copyright (C) 1990-2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
@@ -150,12 +150,16 @@ error (status, errnum, message, va_alist)
++error_message_count;
if (errnum)
{
-#if defined HAVE_STRERROR_R || defined _LIBC
+#if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024];
+# if HAVE_WORKING_STRERROR_R || _LIBC
+ fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
+# else
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
__strerror_r (errnum, errbuf, sizeof errbuf);
fprintf (stderr, ": %s", errbuf);
+# endif
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif
@@ -230,10 +234,14 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
{
#if defined HAVE_STRERROR_R || defined _LIBC
char errbuf[1024];
+# if HAVE_WORKING_STRERROR_R || _LIBC
+ fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
+# else
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
__strerror_r (errnum, errbuf, sizeof errbuf);
fprintf (stderr, ": %s", errbuf);
+# endif
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif