Document merges from coreutils.
[gnulib.git] / lib / error.c
index dda4fd0..308ed3c 100644 (file)
@@ -1,5 +1,5 @@
 /* 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)
@@ -27,7 +27,6 @@
 #else
 # include "gettext.h"
 #endif
-#define _(msgid) gettext (msgid)
 
 #ifdef _LIBC
 # include <wchar.h>
@@ -55,7 +54,14 @@ void exit ();
 #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
@@ -74,6 +80,7 @@ unsigned int error_message_count;
 
 # 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.  */
@@ -86,10 +93,10 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
 # 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 */
 
@@ -154,7 +161,7 @@ print_errno_message (int errnum)
     s = _("Unknown system error");
 #endif
 
-#if _LIBC && USE_IN_LIBIO
+#if _LIBC
   if (_IO_fwide (stderr, 0) > 0)
     {
       __fwprintf (stderr, L": %s", s);
@@ -170,7 +177,7 @@ static void
 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
@@ -221,7 +228,7 @@ error_tail (int status, int errnum, const char *message, va_list args)
   ++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
@@ -256,17 +263,13 @@ error (status, errnum, message, va_alist)
 
   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
@@ -290,11 +293,7 @@ error (status, errnum, message, va_alist)
 #endif
 
 #ifdef _LIBC
-# ifdef USE_IN_LIBIO
   _IO_funlockfile (stderr);
-# else
-  __funlockfile (stderr);
-# endif
 #endif
 }
 \f
@@ -337,17 +336,13 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
 
   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
@@ -357,7 +352,7 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
 
   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
@@ -381,11 +376,7 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
 #endif
 
 #ifdef _LIBC
-# ifdef USE_IN_LIBIO
   _IO_funlockfile (stderr);
-# else
-  __funlockfile (stderr);
-# endif
 #endif
 }