mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +00:00
[BZ #3044]
2006-08-14 Eric Blake <ebb9@byu.net> [BZ #3044] * misc/error.h: Assume C89 or better. * misc/error.c: Likewise.
This commit is contained in:
parent
3997b7c413
commit
240c62a7e7
@ -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>
|
2006-08-21 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
[BZ #3040]
|
[BZ #3040]
|
||||||
|
122
misc/error.c
122
misc/error.c
@ -23,35 +23,19 @@
|
|||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <libintl.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
|
# include <libintl.h>
|
||||||
# include <stdbool.h>
|
# include <stdbool.h>
|
||||||
# include <stdint.h>
|
# include <stdint.h>
|
||||||
# include <wchar.h>
|
# include <wchar.h>
|
||||||
# define mbsrtowcs __mbsrtowcs
|
# define mbsrtowcs __mbsrtowcs
|
||||||
#endif
|
#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"
|
#include "error.h"
|
||||||
|
|
||||||
#ifndef _
|
#ifndef _
|
||||||
@ -61,11 +45,7 @@ void exit ();
|
|||||||
/* If NULL, error will flush stdout, then print on stderr the program
|
/* If NULL, error will flush stdout, then print on stderr the program
|
||||||
name, a colon and a space. Otherwise, error will call this
|
name, a colon and a space. Otherwise, error will call this
|
||||||
function without parameters instead. */
|
function without parameters instead. */
|
||||||
void (*error_print_progname) (
|
void (*error_print_progname) (void);
|
||||||
#if __STDC__ - 0
|
|
||||||
void
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
/* This variable is incremented each time `error' is called. */
|
/* This variable is incremented each time `error' is called. */
|
||||||
unsigned int error_message_count;
|
unsigned int error_message_count;
|
||||||
@ -111,27 +91,6 @@ extern char *program_name;
|
|||||||
|
|
||||||
# if HAVE_STRERROR_R || defined strerror_r
|
# if HAVE_STRERROR_R || defined strerror_r
|
||||||
# define __strerror_r 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 /* HAVE_STRERROR_R || defined strerror_r */
|
||||||
#endif /* not _LIBC */
|
#endif /* not _LIBC */
|
||||||
|
|
||||||
@ -166,15 +125,13 @@ print_errno_message (int errnum)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VA_START
|
|
||||||
static void
|
static void
|
||||||
error_tail (int status, int errnum, const char *message, va_list args)
|
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)
|
if (_IO_fwide (stderr, 0) > 0)
|
||||||
{
|
{
|
||||||
# define ALLOCA_LIMIT 2000
|
# define ALLOCA_LIMIT 2000
|
||||||
size_t len = strlen (message) + 1;
|
size_t len = strlen (message) + 1;
|
||||||
wchar_t *wmessage = NULL;
|
wchar_t *wmessage = NULL;
|
||||||
mbstate_t st;
|
mbstate_t st;
|
||||||
@ -237,47 +194,32 @@ error_tail (int status, int errnum, const char *message, va_list args)
|
|||||||
free (wmessage);
|
free (wmessage);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
# endif
|
#endif
|
||||||
vfprintf (stderr, message, args);
|
vfprintf (stderr, message, args);
|
||||||
# else
|
|
||||||
_doprnt (message, args, stderr);
|
|
||||||
# endif
|
|
||||||
va_end (args);
|
va_end (args);
|
||||||
|
|
||||||
++error_message_count;
|
++error_message_count;
|
||||||
if (errnum)
|
if (errnum)
|
||||||
print_errno_message (errnum);
|
print_errno_message (errnum);
|
||||||
# if _LIBC
|
#if _LIBC
|
||||||
__fxprintf (NULL, "\n");
|
__fxprintf (NULL, "\n");
|
||||||
# else
|
#else
|
||||||
putc ('\n', stderr);
|
putc ('\n', stderr);
|
||||||
# endif
|
#endif
|
||||||
fflush (stderr);
|
fflush (stderr);
|
||||||
if (status)
|
if (status)
|
||||||
exit (status);
|
exit (status);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Print the program name and error message MESSAGE, which is a printf-style
|
/* Print the program name and error message MESSAGE, which is a printf-style
|
||||||
format string with optional args.
|
format string with optional args.
|
||||||
If ERRNUM is nonzero, print its corresponding system error message.
|
If ERRNUM is nonzero, print its corresponding system error message.
|
||||||
Exit with status STATUS if it is nonzero. */
|
Exit with status STATUS if it is nonzero. */
|
||||||
/* VARARGS */
|
|
||||||
void
|
void
|
||||||
#if defined VA_START && __STDC__
|
|
||||||
error (int status, int errnum, const char *message, ...)
|
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;
|
va_list args;
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC && defined __libc_ptf_call
|
#if defined _LIBC && defined __libc_ptf_call
|
||||||
/* We do not want this call to be cut short by a thread
|
/* We do not want this call to be cut short by a thread
|
||||||
@ -302,20 +244,8 @@ error (status, errnum, message, va_alist)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VA_START
|
va_start (args, message);
|
||||||
VA_START (args, message);
|
|
||||||
error_tail (status, errnum, message, args);
|
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
|
#ifdef _LIBC
|
||||||
_IO_funlockfile (stderr);
|
_IO_funlockfile (stderr);
|
||||||
@ -330,22 +260,10 @@ error (status, errnum, message, va_alist)
|
|||||||
int error_one_per_line;
|
int error_one_per_line;
|
||||||
|
|
||||||
void
|
void
|
||||||
#if defined VA_START && __STDC__
|
|
||||||
error_at_line (int status, int errnum, const char *file_name,
|
error_at_line (int status, int errnum, const char *file_name,
|
||||||
unsigned int line_number, const char *message, ...)
|
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;
|
va_list args;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (error_one_per_line)
|
if (error_one_per_line)
|
||||||
{
|
{
|
||||||
@ -393,20 +311,8 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
|
|||||||
file_name, line_number);
|
file_name, line_number);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef VA_START
|
va_start (args, message);
|
||||||
VA_START (args, message);
|
|
||||||
error_tail (status, errnum, message, args);
|
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
|
#ifdef _LIBC
|
||||||
_IO_funlockfile (stderr);
|
_IO_funlockfile (stderr);
|
||||||
|
10
misc/error.h
10
misc/error.h
@ -1,5 +1,5 @@
|
|||||||
/* Declaration for error-reporting function
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -37,8 +37,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __STDC__ && __STDC__
|
|
||||||
|
|
||||||
/* Print a message with `fprintf (stderr, FORMAT, ...)';
|
/* Print a message with `fprintf (stderr, FORMAT, ...)';
|
||||||
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
|
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
|
||||||
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
|
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
|
||||||
@ -55,12 +53,6 @@ extern void error_at_line (int __status, int __errnum, const char *__fname,
|
|||||||
function without parameters instead. */
|
function without parameters instead. */
|
||||||
extern void (*error_print_progname) (void);
|
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. */
|
/* This variable is incremented each time `error' is called. */
|
||||||
extern unsigned int error_message_count;
|
extern unsigned int error_message_count;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user