[PATCH] Use preprocessor conditionals to check if makedev() is present

From: sin <sin_AT_2f30.org>
Date: Tue, 28 Jan 2014 16:54:41 +0000

makedev() is not portable and is typically implemented as a
macro. If it exists use it, otherwise silently ignore character
and block devices.
---
 tar.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/tar.c b/tar.c
index 4585d95..a478e5f 100644
--- a/tar.c
+++ b/tar.c
_AT_@ -245,12 +245,14 @@ unarchive(char *fname, int l, char b[Blksiz])
 		break;
 	case CHARDEV:
 	case BLOCKDEV:
+#ifdef makedev
 		mode = strtoul(h->mode, 0, 8);
 		major = strtoul(h->major, 0, 8);
 		minor = strtoul(h->mode, 0, 8);
 		type = (h->type == CHARDEV) ? S_IFCHR : S_IFBLK;
 		if(mknod(fname, type | mode, makedev(major, minor)))
 			perror(fname);
+#endif
 		break;
 	case FIFO:
 		mode = strtoul(h->mode, 0, 8);
-- 
1.8.5.3
--/9DWx/yDrRhgMJTb--
Received on Mon Sep 17 2001 - 00:00:00 CEST

This archive was generated by hypermail 2.3.0 : Wed Jan 29 2014 - 11:36:02 CET