src/fgetln.c
src/progname.c
Copyright:
- Copyright © 2005, 2008-2012 Guillem Jover <guillem@hadrons.org>
+ Copyright © 2005, 2008-2012, 2019 Guillem Jover <guillem@hadrons.org>
Copyright © 2005 Hector Garcia Alvarez
Copyright © 2005 Aurelien Jarno
Copyright © 2006 Robert Millan
#include <stdarg.h>
__BEGIN_DECLS
-void warnc(int code, const char *format, ...)
- __printflike(2, 3);
void vwarnc(int code, const char *format, va_list ap)
__printflike(2, 0);
+void warnc(int code, const char *format, ...)
+ __printflike(2, 3);
-void errc(int status, int code, const char *format, ...)
- __printflike(3, 4) __dead2;
void verrc(int status, int code, const char *format, va_list ap)
__printflike(3, 0) __dead2;
+void errc(int status, int code, const char *format, ...)
+ __printflike(3, 4) __dead2;
__END_DECLS
#endif
/*
* Copyright © 2006 Robert Millan
- * Copyright © 2011 Guillem Jover <guillem@hadrons.org>
+ * Copyright © 2011, 2019 Guillem Jover <guillem@hadrons.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
*/
#include <err.h>
-#include <errno.h>
+#include <string.h>
#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+void
+vwarnc(int code, const char *format, va_list ap)
+{
+ fprintf(stderr, "%s: ", getprogname());
+ if (format) {
+ vfprintf(stderr, format, ap);
+ fprintf(stderr, ": ");
+ }
+ fprintf(stderr, "%s\n", strerror(code));
+}
void
warnc(int code, const char *format, ...)
}
void
-vwarnc(int code, const char *format, va_list ap)
+verrc(int status, int code, const char *format, va_list ap)
{
- int tmp = errno;
-
- errno = code;
- vwarn(format, ap);
- errno = tmp;
+ fprintf(stderr, "%s: ", getprogname());
+ if (format) {
+ vfprintf(stderr, format, ap);
+ fprintf(stderr, ": ");
+ }
+ fprintf(stderr, "%s\n", strerror(code));
+ exit(status);
}
void
verrc(status, code, format, ap);
va_end(ap);
}
-
-void
-verrc(int status, int code, const char *format, va_list ap)
-{
- errno = code;
- verr(status, format, ap);
-}