Commit Diff


commit - 3cf47875ce561b7c72ed68934d8fd735d78af608
commit + 90e504337fba8846ec1b5ffa3e37f4454feb486a
blob - 244909c09b1829522fc3429f5e207de7edd34bc2
blob + abe930fd1c8fdfb5d615f779712057195cad7781
--- compat/err.c
+++ compat/err.c
@@ -53,6 +53,19 @@ err(int ret, const char *fmt, ...)
 }
 
 void
+errc(int ret, int code, const char *fmt, ...)
+{
+	va_list	ap;
+
+	errno = code;
+
+	va_start(ap, fmt);
+	vwarn(fmt, ap);
+	va_end(ap);
+	exit(ret);
+}
+
+void
 errx(int ret, const char *fmt, ...)
 {
 	va_list	ap;
@@ -74,6 +87,18 @@ warn(const char *fmt, ...)
 }
 
 void
+warnc(int code, const char *fmt, ...)
+{
+	va_list	ap;
+
+	errno = code;
+
+	va_start(ap, fmt);
+	vwarn(fmt, ap);
+	va_end(ap);
+}
+
+void
 warnx(const char *fmt, ...)
 {
 	va_list	ap;
blob - 0b4bec6afcb8406227560256b9f6cb773814b829
blob + 0d56ff81a5dea90c1e7050620265bccdd11a85c3
--- compat.h
+++ compat.h
@@ -110,9 +110,11 @@ int		 vasprintf(char **, const char *, ...);
 
 #ifndef HAVE_ERR
 void		 err(int, const char *, ...);
+void		 errc(int, int, const char *, ...);
 void		 errx(int, const char *, ...);
-void		 warn(int, const char *, ...);
-void		 warnx(int, const char *, ...);
+void		 warn(const char *, ...);
+void		 warnc(int, const char *, ...);
+void		 warnx(const char *, ...);
 #else
 #include <err.h>
 #endif