瀏覽代碼

unifdef: implement err.h funcs locally

Since the err.h functions are optional in uClibc, make sure we can rebuild
ourselves if support is disabled.

URL: https://bugs.busybox.net/show_bug.cgi?id=257
Reported-by: Michael Deutschmann <michael@talamasca.ocis.net>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger 15 年之前
父節點
當前提交
fa6b1e9526
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      extra/scripts/unifdef.c

+ 7 - 1
extra/scripts/unifdef.c

@@ -63,8 +63,8 @@ __FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05
  *     also make it possible to handle all "dodgy" directives correctly.
  */
 
+#include <errno.h>
 #include <ctype.h>
-#include <err.h>
 #include <stdarg.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -72,6 +72,12 @@ __FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05
 #include <string.h>
 #include <unistd.h>
 
+/* Avoid err.h since uClibc can disable these things */
+#define vwarnx(fmt, args)   ({ fprintf(stderr, "unifdef: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); })
+#define warnx(fmt, args...) fprintf(stderr, "unifdef: " fmt "\n", ## args)
+#define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
+#define err(exit_code, fmt, args...)  errx(exit_code, fmt ": %s", ## args, strerror(errno))
+
 size_t strlcpy(char *dst, const char *src, size_t siz);
 
 /* types of input lines: */