]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
r1729 was wrong. Revert it and use a better approach.
authorTim Kientzle <kientzle@gmail.com>
Sun, 13 Dec 2009 19:08:45 +0000 (14:08 -0500)
committerTim Kientzle <kientzle@gmail.com>
Sun, 13 Dec 2009 19:08:45 +0000 (14:08 -0500)
SVN-Revision: 1730

libarchive/test/test_open_fd.c
libarchive/test/test_read_data_large.c
libarchive/test/test_read_large.c
tar/write.c

index 20ecd44c2b034936f2c49717236a639affc05e04..c22b66f605f336e3330a03c1b71c6d238aa82016 100644 (file)
 __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;
index 06deb65cea5578763afdb96ca922afcc76c7fdc2..dae487bf2be96d22c8a2fc70183e4a82a7beeac4 100644 (file)
@@ -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));
index c8f93d5aa15e08422b84dc07deda19fab34fa4b8..60683b41a9db11ad0b93c2deaf35a4de8646e87e 100644 (file)
@@ -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));
index 7284b1e073351a2dc53bc102147c51d5ce3a6652..8e6c5f04f52e16d9081dc9c153d68fed56218fe6 100644 (file)
@@ -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);