Skip to content

Commit

Permalink
[BZ #3044]
Browse files Browse the repository at this point in the history
2006-08-14  Eric Blake
<ebb9@byu.net>

	[BZ #3044]
	* misc/error.h: Assume C89 or better.
	* misc/error.c: Likewise.
  • Loading branch information
Ulrich Drepper committed Aug 21, 2006
1 parent 3997b7c commit 240c62a
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 117 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2006-08-14 Eric Blake <ebb9@byu.net>

[BZ #3044]
* misc/error.h: Assume C89 or better.
* misc/error.c: Likewise.

2006-08-21 Ulrich Drepper <drepper@redhat.com>

[BZ #3040]
Expand Down
122 changes: 14 additions & 108 deletions misc/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,19 @@
# include <config.h>
#endif

#include <stdarg.h>
#include <stdio.h>
#include <libintl.h>
#include <stdlib.h>
#include <string.h>

#ifdef _LIBC
# include <libintl.h>
# include <stdbool.h>
# include <stdint.h>
# include <wchar.h>
# define mbsrtowcs __mbsrtowcs
#endif

#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
# if __STDC__
# include <stdarg.h>
# define VA_START(args, lastarg) va_start(args, lastarg)
# else
# include <varargs.h>
# define VA_START(args, lastarg) va_start(args)
# endif
#else
# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
#endif

#if STDC_HEADERS || _LIBC
# include <stdlib.h>
# include <string.h>
#else
void exit ();
#endif

#include "error.h"

#ifndef _
Expand All @@ -61,11 +45,7 @@ void exit ();
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
void (*error_print_progname) (
#if __STDC__ - 0
void
#endif
);
void (*error_print_progname) (void);

/* This variable is incremented each time `error' is called. */
unsigned int error_message_count;
Expand Down Expand Up @@ -111,27 +91,6 @@ extern char *program_name;

# if HAVE_STRERROR_R || defined strerror_r
# define __strerror_r strerror_r
# else
# if HAVE_STRERROR
# ifndef HAVE_DECL_STRERROR
"this configure-time declaration test was not run"
# endif
# if !HAVE_DECL_STRERROR
char *strerror ();
# endif
# else
static char *
private_strerror (int errnum)
{
extern char *sys_errlist[];
extern int sys_nerr;

if (errnum > 0 && errnum <= sys_nerr)
return _(sys_errlist[errnum]);
return _("Unknown system error");
}
# define strerror private_strerror
# endif /* HAVE_STRERROR */
# endif /* HAVE_STRERROR_R || defined strerror_r */
#endif /* not _LIBC */

Expand Down Expand Up @@ -166,15 +125,13 @@ print_errno_message (int errnum)
#endif
}

#ifdef VA_START
static void
error_tail (int status, int errnum, const char *message, va_list args)
{
# if HAVE_VPRINTF || _LIBC
# if _LIBC
#if _LIBC
if (_IO_fwide (stderr, 0) > 0)
{
# define ALLOCA_LIMIT 2000
# define ALLOCA_LIMIT 2000
size_t len = strlen (message) + 1;
wchar_t *wmessage = NULL;
mbstate_t st;
Expand Down Expand Up @@ -237,47 +194,32 @@ error_tail (int status, int errnum, const char *message, va_list args)
free (wmessage);
}
else
# endif
#endif
vfprintf (stderr, message, args);
# else
_doprnt (message, args, stderr);
# endif
va_end (args);

++error_message_count;
if (errnum)
print_errno_message (errnum);
# if _LIBC
#if _LIBC
__fxprintf (NULL, "\n");
# else
#else
putc ('\n', stderr);
# endif
#endif
fflush (stderr);
if (status)
exit (status);
}
#endif


/* Print the program name and error message MESSAGE, which is a printf-style
format string with optional args.
If ERRNUM is nonzero, print its corresponding system error message.
Exit with status STATUS if it is nonzero. */
/* VARARGS */
void
#if defined VA_START && __STDC__
error (int status, int errnum, const char *message, ...)
#else
error (status, errnum, message, va_alist)
int status;
int errnum;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif

#if defined _LIBC && defined __libc_ptf_call
/* We do not want this call to be cut short by a thread
Expand All @@ -302,20 +244,8 @@ error (status, errnum, message, va_alist)
#endif
}

#ifdef VA_START
VA_START (args, message);
va_start (args, message);
error_tail (status, errnum, message, args);
#else
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);

++error_message_count;
if (errnum)
print_errno_message (errnum);
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
#endif

#ifdef _LIBC
_IO_funlockfile (stderr);
Expand All @@ -330,22 +260,10 @@ error (status, errnum, message, va_alist)
int error_one_per_line;

void
#if defined VA_START && __STDC__
error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message, ...)
#else
error_at_line (status, errnum, file_name, line_number, message, va_alist)
int status;
int errnum;
const char *file_name;
unsigned int line_number;
char *message;
va_dcl
#endif
{
#ifdef VA_START
va_list args;
#endif

if (error_one_per_line)
{
Expand Down Expand Up @@ -393,20 +311,8 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
file_name, line_number);
#endif

#ifdef VA_START
VA_START (args, message);
va_start (args, message);
error_tail (status, errnum, message, args);
#else
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);

++error_message_count;
if (errnum)
print_errno_message (errnum);
putc ('\n', stderr);
fflush (stderr);
if (status)
exit (status);
#endif

#ifdef _LIBC
_IO_funlockfile (stderr);
Expand Down
10 changes: 1 addition & 9 deletions misc/error.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Declaration for error-reporting function
Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 2003, 2006 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
Expand Down Expand Up @@ -37,8 +37,6 @@
extern "C" {
#endif

#if defined __STDC__ && __STDC__

/* Print a message with `fprintf (stderr, FORMAT, ...)';
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
Expand All @@ -55,12 +53,6 @@ extern void error_at_line (int __status, int __errnum, const char *__fname,
function without parameters instead. */
extern void (*error_print_progname) (void);

#else
void error ();
void error_at_line ();
extern void (*error_print_progname) ();
#endif

/* This variable is incremented each time `error' is called. */
extern unsigned int error_message_count;

Expand Down

0 comments on commit 240c62a

Please sign in to comment.