summaryrefslogtreecommitdiffstats
path: root/Utilities/cmtar/libtar.c
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2006-12-04 22:26:41 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2006-12-04 22:26:41 (GMT)
commit3a32cec96923cf057aad00274b4a8ab7ad82a82f (patch)
tree304527c04dbad8b51ce2bccda1a434f424bf1a9a /Utilities/cmtar/libtar.c
parentde8ffcaef492e23af57ed5489dd8a21fdd7ad5d8 (diff)
downloadCMake-3a32cec96923cf057aad00274b4a8ab7ad82a82f.zip
CMake-3a32cec96923cf057aad00274b4a8ab7ad82a82f.tar.gz
CMake-3a32cec96923cf057aad00274b4a8ab7ad82a82f.tar.bz2
ENH: merge in changes for beos support
Diffstat (limited to 'Utilities/cmtar/libtar.c')
-rw-r--r--Utilities/cmtar/libtar.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Utilities/cmtar/libtar.c b/Utilities/cmtar/libtar.c
index 362c105..b19d043 100644
--- a/Utilities/cmtar/libtar.c
+++ b/Utilities/cmtar/libtar.c
@@ -99,8 +99,13 @@ static int libtar_gzopen(void* call_data, const char *pathname,
return -1;
}
-#if !defined(_WIN32) || defined(__CYGWIN__)
- if ((oflags & O_CREAT) && fchmod(fd, mode))
+#if defined(__BEOS__) && !defined(__ZETA__) // no fchmod on BeOS...do pathname instead.
+ if ((oflags & O_CREAT) && chmod(pathname, mode & 07777))
+ {
+ return -1;
+ }
+#elif !defined(_WIN32) || defined(__CYGWIN__)
+ if ((oflags & O_CREAT) && fchmod(fd, mode & 07777))
{
return -1;
}