Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Dec 2009 02:28:44 +0000 (UTC)
From:      Tim Kientzle <kientzle@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r201093 - head/lib/libarchive
Message-ID:  <200912280228.nBS2SiNx075905@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kientzle
Date: Mon Dec 28 02:28:44 2009
New Revision: 201093
URL: http://svn.freebsd.org/changeset/base/201093

Log:
  Portability:  Set the file descriptor to binary mode on Win32

Modified:
  head/lib/libarchive/archive_read_open_file.c
  head/lib/libarchive/archive_read_open_filename.c
  head/lib/libarchive/archive_write_open_fd.c

Modified: head/lib/libarchive/archive_read_open_file.c
==============================================================================
--- head/lib/libarchive/archive_read_open_file.c	Mon Dec 28 02:26:06 2009	(r201092)
+++ head/lib/libarchive/archive_read_open_file.c	Mon Dec 28 02:28:44 2009	(r201093)
@@ -35,6 +35,9 @@ __FBSDID("$FreeBSD$");
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -94,6 +97,10 @@ archive_read_open_FILE(struct archive *a
 	} else
 		mine->can_skip = 0;
 
+#if defined(__CYGWIN__) || defined(_WIN32)
+	setmode(fileno(mine->f), O_BINARY);
+#endif
+
 	return (archive_read_open2(a, mine, NULL, file_read,
 		    file_skip, file_close));
 }

Modified: head/lib/libarchive/archive_read_open_filename.c
==============================================================================
--- head/lib/libarchive/archive_read_open_filename.c	Mon Dec 28 02:26:06 2009	(r201092)
+++ head/lib/libarchive/archive_read_open_filename.c	Mon Dec 28 02:28:44 2009	(r201093)
@@ -35,6 +35,9 @@ __FBSDID("$FreeBSD$");
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -96,6 +99,9 @@ archive_read_open_filename(struct archiv
 		 */
 		filename = ""; /* Normalize NULL to "" */
 		fd = 0;
+#if defined(__CYGWIN__) || defined(_WIN32)
+		setmode(0, O_BINARY);
+#endif
 	} else {
 		fd = open(filename, O_RDONLY | O_BINARY);
 		if (fd < 0) {

Modified: head/lib/libarchive/archive_write_open_fd.c
==============================================================================
--- head/lib/libarchive/archive_write_open_fd.c	Mon Dec 28 02:26:06 2009	(r201092)
+++ head/lib/libarchive/archive_write_open_fd.c	Mon Dec 28 02:28:44 2009	(r201093)
@@ -32,6 +32,12 @@ __FBSDID("$FreeBSD$");
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -64,6 +70,9 @@ archive_write_open_fd(struct archive *a,
 		return (ARCHIVE_FATAL);
 	}
 	mine->fd = fd;
+#if defined(__CYGWIN__) || defined(_WIN32)
+	setmode(mine->fd, O_BINARY);
+#endif
 	return (archive_write_open(a, mine,
 		    file_open, file_write, file_close));
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912280228.nBS2SiNx075905>