X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Ferror.c;h=3177bd5d2cbc3802e3590e40732ca6c376762a31;hb=4cd8485e904c1a98470eb548fe6ac0f04e343c4e;hp=34e83655291a39bead88115a9f1b0c98b3b37b1d;hpb=be5a3998ec7bae6cd2054e5e521aaaa321627e0f;p=gnulib.git diff --git a/lib/error.c b/lib/error.c index 34e836552..3177bd5d2 100644 --- a/lib/error.c +++ b/lib/error.c @@ -1,24 +1,23 @@ /* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc. This file is part of the GNU C Library. - This program is free software; you can redistribute it and/or modify + 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) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ /* Written by David MacKenzie . */ -#ifdef HAVE_CONFIG_H +#if !_LIBC # include #endif @@ -31,6 +30,7 @@ #if !_LIBC && ENABLE_NLS # include "gettext.h" +# define _(msgid) gettext (msgid) #endif #ifdef _LIBC @@ -92,23 +92,19 @@ extern void __error_at_line (int status, int errnum, const char *file_name, char *strerror_r (); # endif -# ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -# endif - /* The calling program should define program_name and set it to the name of the executing program. */ extern char *program_name; # if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r -# endif +# endif /* HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ static void print_errno_message (int errnum) { - char const *s = NULL; + char const *s; #if defined HAVE_STRERROR_R || _LIBC char errbuf[1024]; @@ -117,11 +113,15 @@ print_errno_message (int errnum) # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; + else + s = 0; # endif +#else + s = strerror (errnum); #endif #if !_LIBC - if (! s && ! (s = strerror (errnum))) + if (! s) s = _("Unknown system error"); #endif @@ -310,14 +310,13 @@ error_at_line (int status, int errnum, const char *file_name, #endif } - if (file_name != NULL) - { #if _LIBC - __fxprintf (NULL, "%s:%d: ", file_name, line_number); + __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", + file_name, line_number); #else - fprintf (stderr, "%s:%d: ", file_name, line_number); + fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", + file_name, line_number); #endif - } va_start (args, message); error_tail (status, errnum, message, args);