sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit e37e2782a93af0bc08e09e4785e031c35dc413cb
parent 0a7791a25c81300a04a62d96dbed78718bdd1797
Author: sin <sin@2f30.org>
Date:   Thu, 30 Jan 2014 16:14:33 +0000

Only use major()/minor() if they are available in tar(1)

Otherwise silently ignore them in the archive case.  This is the
same in principle as what we do in the unarchive case.

Diffstat:
Mtar.c | 4++++
1 file changed, 4 insertions(+), 0 deletions(-)

diff --git a/tar.c b/tar.c @@ -193,8 +193,12 @@ archive(const char* path) readlink(path, h->link, (sizeof h->link)-1); } else if(S_ISCHR(mode) || S_ISBLK(mode)) { h->type = S_ISCHR(mode) ? CHARDEV : BLOCKDEV; +#if defined(major) && defined(minor) putoctal(h->major, (unsigned)major(st.st_dev), sizeof h->major); putoctal(h->minor, (unsigned)minor(st.st_dev), sizeof h->minor); +#else + return 0; +#endif } else if(S_ISFIFO(mode)) { h->type = FIFO; }