/* Error handler for noninteractive utilities
- Copyright (C) 1990-1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1990-1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
#else
# include "gettext.h"
#endif
-#define _(msgid) gettext (msgid)
#ifdef _LIBC
# include <wchar.h>
#endif
#include "error.h"
-#include "unlocked-io.h"
+
+#if !_LIBC
+# include "unlocked-io.h"
+#endif
+
+#ifndef _
+# define _(String) String
+#endif
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
# define program_name program_invocation_name
# include <errno.h>
+# include <libio/libioP.h>
/* In GNU libc we want do not want to use the common name `error' directly.
Instead make it a weak alias. */
# define error __error
# define error_at_line __error_at_line
-# ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) _IO_fflush (s)
-# endif
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# undef putc
+# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
#else /* not _LIBC */
s = _("Unknown system error");
#endif
-#if _LIBC && USE_IN_LIBIO
+#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
{
__fwprintf (stderr, L": %s", s);
error_tail (int status, int errnum, const char *message, va_list args)
{
# if HAVE_VPRINTF || _LIBC
-# if _LIBC && USE_IN_LIBIO
+# if _LIBC
if (_IO_fwide (stderr, 0) > 0)
{
# define ALLOCA_LIMIT 2000
++error_message_count;
if (errnum)
print_errno_message (errnum);
-# if _LIBC && USE_IN_LIBIO
+# if _LIBC
if (_IO_fwide (stderr, 0) > 0)
putwc (L'\n', stderr);
else
fflush (stdout);
#ifdef _LIBC
-# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
-# else
- __flockfile (stderr);
-# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
-#if _LIBC && USE_IN_LIBIO
+#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
#endif
#ifdef _LIBC
-# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
-# else
- __funlockfile (stderr);
-# endif
#endif
}
\f
fflush (stdout);
#ifdef _LIBC
-# ifdef USE_IN_LIBIO
_IO_flockfile (stderr);
-# else
- __flockfile (stderr);
-# endif
#endif
if (error_print_progname)
(*error_print_progname) ();
else
{
-#if _LIBC && USE_IN_LIBIO
+#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s: ", program_name);
else
if (file_name != NULL)
{
-#if _LIBC && USE_IN_LIBIO
+#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
else
#endif
#ifdef _LIBC
-# ifdef USE_IN_LIBIO
_IO_funlockfile (stderr);
-# else
- __funlockfile (stderr);
-# endif
#endif
}