diff options
author | Robert Millan <rmh@aybabtu.com> | 2006-02-10 14:59:03 +0000 |
---|---|---|
committer | Guillem Jover <guillem@hadrons.org> | 2008-05-06 08:47:26 +0300 |
commit | 33eb3ecc41af581080a97300f052df2eea4722e7 (patch) | |
tree | ff0198c26c9beb4da87888893c0817f9eb001355 | |
parent | bc2b90c07b5dbf2850698a4336bdd13384a43087 (diff) | |
download | libbsd-33eb3ecc41af581080a97300f052df2eea4722e7.tar.gz |
Add errc, warnc, verrc and vwarnc
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | Versions | 1 | ||||
-rw-r--r-- | err.c | 63 | ||||
-rw-r--r-- | include/bsd/err.h | 11 |
5 files changed, 86 insertions, 3 deletions
@@ -1,6 +1,14 @@ +2006-02-10 Robert Millan <rmh@aybabtu.com> + + Add errc, warnc, verrc and vwarnc. + * err.c: New. + * include/bsd/err.h: New. + * Versions: Add them. + * Makefile: Add err.c and include/bsd/err.h. + 2005-12-19 Aurelien Jarno <aurel32@debian.org> - * Added manpages + * Added manpages * fmtcheck.c: new * include/stdlib.h: added fmtcheck * Versions: added fmtcheck @@ -4,9 +4,9 @@ # $Id$ # -LIB_SRCS = arc4random.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c md5c.c fmtcheck.c +LIB_SRCS = arc4random.c err.c fgetln.c inet_net_pton.c strlcat.c strlcpy.c md5c.c fmtcheck.c -LIB_INCLUDES = include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h +LIB_INCLUDES = include/bsd/err.h include/bsd/ip_icmp.h include/bsd/random.h include/bsd/queue.h include/bsd/md5.h include/bsd/string.h include/bsd/bsd.h include/bsd/stdlib.h LIB_MANS = man/arc4random.3 man/strlcpy.3 man/fgetln.3 man/fmtcheck.3 @@ -1,6 +1,7 @@ LIBBSD_0.0 { global: arc4random; + errc; warnc; verrc; vwarnc; fgetln; fgetwln; fmtcheck; @@ -0,0 +1,63 @@ +/* Copyright (C) 2006 Robert Millan + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include <bsd/err.h> +#include <errno.h> +#include <stdarg.h> + +void +warnc (int code, const char *format, ...) +{ + int tmp = errno; + va_list ap; + va_start (ap, format); + + errno = code; + warn (format, ap); + errno = tmp; + + va_end (ap); +} + +void +vwarnc (int code, const char *format, va_list ap) +{ + int tmp = errno; + + errno = code; + vwarn (format, ap); + errno = tmp; +} + +void +errc (int status, int code, const char *format, ...) +{ + va_list ap; + va_start (ap, format); + + errno = code; + err (status, format, ap); + + va_end (ap); +} + +void +verrc (int status, int code, const char *format, va_list ap) +{ + errno = code; + verr (status, format, ap); +} diff --git a/include/bsd/err.h b/include/bsd/err.h new file mode 100644 index 0000000..ab9ac90 --- /dev/null +++ b/include/bsd/err.h @@ -0,0 +1,11 @@ +#ifndef LIBBSD_ERR_H +#define LIBBSD_ERR_H + +#include <err.h> + +extern void warnc (int code, const char *format, ...); +extern void vwarnc (int code, const char *format, va_list ap); +extern void errc (int status, int code, const char *format, ...); +extern void verrc (int status, int code, const char *format, va_list ap); + +#endif |