diff options
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/perror.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/stdio-common/perror.c b/stdio-common/perror.c index 4c29cb09e1..239d43edc6 100644 --- a/stdio-common/perror.c +++ b/stdio-common/perror.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1993,1997,1998,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,9 +16,10 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include <errno.h> #include <stdio.h> #include <string.h> -#include <errno.h> +#include <wchar.h> /* Print a line on stderr consisting of the text in S, a colon, a space, a message describing the meaning of the contents of `errno' and a newline. @@ -29,12 +30,17 @@ perror (const char *s) char buf[1024]; int errnum = errno; const char *colon; + const char *errstring; if (s == NULL || *s == '\0') s = colon = ""; else colon = ": "; - (void) fprintf (stderr, "%s%s%s\n", - s, colon, __strerror_r (errnum, buf, sizeof buf)); + errstring = __strerror_r (errnum, buf, sizeof buf); + + if (fwide (stderr, 0) > 0) + (void) fwprintf (stderr, L"%s%s%s\n", s, colon, errstring); + else + (void) fprintf (stderr, "%s%s%s\n", s, colon, errstring); } |