summaryrefslogtreecommitdiff
path: root/expat/xmlwf
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2017-08-23 16:23:33 +0200
committerSebastian Pipping <sebastian@pipping.org>2017-08-23 17:38:39 +0200
commit1bfe015a78c181bb9fd9db8e973cb122c6820cd5 (patch)
tree2b21196f838d1a0822bbf5a78c981dee44b503ef /expat/xmlwf
parentddaa78c708c054f91168c5aac97f9dd7b43cf1b5 (diff)
downloadlibexpat-git-1bfe015a78c181bb9fd9db8e973cb122c6820cd5.tar.gz
xmlwf/readfilemap.c: Address lack of ssize_t for Visual Studio
Diffstat (limited to 'expat/xmlwf')
-rw-r--r--expat/xmlwf/readfilemap.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/expat/xmlwf/readfilemap.c b/expat/xmlwf/readfilemap.c
index dd71847e..2ee2fe95 100644
--- a/expat/xmlwf/readfilemap.c
+++ b/expat/xmlwf/readfilemap.c
@@ -41,6 +41,17 @@
# include <unistd.h>
#endif
+/* Function "read": */
+#if defined(_MSC_VER)
+ /* https://msdn.microsoft.com/en-us/library/wyssk1bs(v=vs.100).aspx */
+# define _EXPAT_read _read
+# define _EXPAT_read_count_t int
+#else /* POSIX */
+ /* http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html */
+# define _EXPAT_read read
+# define _EXPAT_read_count_t ssize_t
+#endif
+
#ifndef S_ISREG
#ifndef S_IFREG
#define S_IFREG _S_IFREG
@@ -68,7 +79,7 @@ filemap(const char *name,
{
size_t nbytes;
int fd;
- ssize_t n;
+ _EXPAT_read_count_t n;
struct stat sb;
void *p;
@@ -106,14 +117,14 @@ filemap(const char *name,
close(fd);
return 0;
}
- n = read(fd, p, nbytes);
+ n = _EXPAT_read(fd, p, nbytes);
if (n < 0) {
perror(name);
free(p);
close(fd);
return 0;
}
- if (n != (ssize_t)nbytes) {
+ if (n != (_EXPAT_read_count_t)nbytes) {
fprintf(stderr, "%s: read unexpected number of bytes\n", name);
free(p);
close(fd);