From: Tim Kientzle Date: Sun, 13 Dec 2009 19:08:45 +0000 (-0500) Subject: r1729 was wrong. Revert it and use a better approach. X-Git-Tag: v2.8.0~94 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bdcc3b2474d930b626c21c3b4e194b16c55dc3c0;p=thirdparty%2Flibarchive.git r1729 was wrong. Revert it and use a better approach. SVN-Revision: 1730 --- diff --git a/libarchive/test/test_open_fd.c b/libarchive/test/test_open_fd.c index 20ecd44c2..c22b66f60 100644 --- a/libarchive/test/test_open_fd.c +++ b/libarchive/test/test_open_fd.c @@ -26,11 +26,7 @@ __FBSDID("$FreeBSD$"); #if defined(_WIN32) && !defined(__CYGWIN__) -#ifdef __BORLANDC__ -#define open(fn,mode,create) _open(fn,mode) -#else #define open _open -#endif #define lseek _lseek #define close _close #endif @@ -42,7 +38,11 @@ DEFINE_TEST(test_open_fd) struct archive *a; int fd; +#if defined(__BORLANDC__) + fd = open("test.tar", O_RDWR | O_CREAT | O_BINARY); +#else fd = open("test.tar", O_RDWR | O_CREAT | O_BINARY, 0777); +#endif assert(fd >= 0); if (fd < 0) return; diff --git a/libarchive/test/test_read_data_large.c b/libarchive/test/test_read_data_large.c index 06deb65ce..dae487bf2 100644 --- a/libarchive/test/test_read_data_large.c +++ b/libarchive/test/test_read_data_large.c @@ -34,11 +34,7 @@ __FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_data_large.c,v 1.4 2008/09 */ #if defined(_WIN32) && !defined(__CYGWIN__) -#ifdef __BORLANDC__ -#define open(fn,mode,create) _open(fn,mode) -#else #define open _open -#endif #define close _close #endif @@ -106,7 +102,11 @@ DEFINE_TEST(test_read_data_large) assertA(0 == archive_read_support_compression_all(a)); assertA(0 == archive_read_open_memory(a, buff1, sizeof(buff1))); assertA(0 == archive_read_next_header(a, &ae)); +#if defined(__BORLANDC__) + tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY); +#else tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY, 0777); +#endif assert(tmpfilefd != 0); assertEqualIntA(a, 0, archive_read_data_into_fd(a, tmpfilefd)); assert(0 == archive_read_close(a)); diff --git a/libarchive/test/test_read_large.c b/libarchive/test/test_read_large.c index c8f93d5aa..60683b41a 100644 --- a/libarchive/test/test_read_large.c +++ b/libarchive/test/test_read_large.c @@ -30,11 +30,7 @@ static unsigned char testdatacopy[10 * 1024 * 1024]; static unsigned char buff[11 * 1024 * 1024]; #if defined(_WIN32) && !defined(__CYGWIN__) -#ifdef __BORLANDC__ -#define open(fn,mode,create) _open(fn,mode) -#else #define open _open -#endif #define close _close #endif @@ -79,9 +75,12 @@ DEFINE_TEST(test_read_large) assertA(0 == archive_read_support_compression_all(a)); assertA(0 == archive_read_open_memory(a, buff, sizeof(buff))); assertA(0 == archive_read_next_header(a, &entry)); - // TODO: Provide a Windows-friendly version of this? - assert(0 < (tmpfilefd = open(tmpfilename, - O_WRONLY | O_CREAT | O_BINARY, 0755))); +#if defined(__BORLANDC__) + tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY); +#else + tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY, 0755); +#endif + assert(0 < tmpfilefd); assertA(0 == archive_read_data_into_fd(a, tmpfilefd)); close(tmpfilefd); assertA(0 == archive_read_finish(a)); diff --git a/tar/write.c b/tar/write.c index 7284b1e07..8e6c5f04f 100644 --- a/tar/write.c +++ b/tar/write.c @@ -152,11 +152,7 @@ seek_file(int fd, int64_t offset, int whence) return (SetFilePointerEx((HANDLE)_get_osfhandle(fd), distance, NULL, FILE_BEGIN) ? 1 : -1); } -#ifdef __BORLANDC__ -#define open(fn,mode,create) _open(fn,mode) -#else #define open _open -#endif #define close _close #define read _read #define lseek seek_file @@ -259,7 +255,11 @@ tar_mode_r(struct bsdtar *bsdtar) format = ARCHIVE_FORMAT_TAR_PAX_RESTRICTED; +#if defined(__BORLANDC__) + bsdtar->fd = open(bsdtar->filename, O_RDWR | O_CREAT); +#else bsdtar->fd = open(bsdtar->filename, O_RDWR | O_CREAT, 0666); +#endif if (bsdtar->fd < 0) lafe_errc(1, errno, "Cannot open %s", bsdtar->filename);