From 910b876a54e8bfa91393e6dfdb553c1249b9fdcd Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 14 Sep 2008 13:51:49 +0200 Subject: [PATCH] New module 'perror'. --- lib/perror.c | 35 +++++++++++++++++++++++++++++++++++ m4/perror.m4 | 17 +++++++++++++++++ modules/perror | 26 ++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 lib/perror.c create mode 100644 m4/perror.m4 create mode 100644 modules/perror diff --git a/lib/perror.c b/lib/perror.c new file mode 100644 index 000000000..72d9f2851 --- /dev/null +++ b/lib/perror.c @@ -0,0 +1,35 @@ +/* Print a message describing error code. + Copyright (C) 2008 Free Software Foundation, Inc. + Written by Bruno Haible and Simon Josefsson. + + 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 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, see . */ + +#include + +/* Specification. */ +#include + +#include +#include + +void +perror (const char *string) +{ + const char *errno_description = strerror (errno); + + if (string != NULL && *string != '\0') + fprintf (stderr, "%s: %s\n", string, errno_description); + else + fprintf (stderr, "%s\n", errno_description); +} diff --git a/m4/perror.m4 b/m4/perror.m4 new file mode 100644 index 000000000..fb37fd0d9 --- /dev/null +++ b/m4/perror.m4 @@ -0,0 +1,17 @@ +# perror.m4 serial 1 +dnl Copyright (C) 2008 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_PERROR], +[ + AC_REQUIRE([gl_STDIO_H_DEFAULTS]) + AC_REQUIRE([gl_HEADER_ERRNO_H]) + if test -n "$ERRNO_H"; then + dnl The system's perror() cannot know about the new errno values we add + dnl to . Replace it. + REPLACE_PERROR=1 + AC_LIBOBJ([perror]) + fi +]) diff --git a/modules/perror b/modules/perror new file mode 100644 index 000000000..191749b14 --- /dev/null +++ b/modules/perror @@ -0,0 +1,26 @@ +Description: +perror() function: print a message describing error code. + +Files: +lib/perror.c +m4/perror.m4 + +Depends-on: +stdio +errno +strerror + +configure.ac: +gl_FUNC_PERROR +gl_STRING_MODULE_INDICATOR([perror]) + +Makefile.am: + +Include: + + +License: +LGPL + +Maintainer: +all -- 2.11.0