From: Tim Kientzle Date: Fri, 15 May 2009 00:11:13 +0000 (-0400) Subject: Issue 23: Fix a number of minor compatibility problems with MinGW. X-Git-Tag: v2.8.0~650 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0cf0532dee109732cdbed78ae2800698ce11d0b0;p=thirdparty%2Flibarchive.git Issue 23: Fix a number of minor compatibility problems with MinGW. SVN-Revision: 1083 --- diff --git a/libarchive/archive_windows.c b/libarchive/archive_windows.c index 378232f75..df9c106ee 100644 --- a/libarchive/archive_windows.c +++ b/libarchive/archive_windows.c @@ -49,6 +49,7 @@ #define WINVER 0x0500 #include "archive_platform.h" +#include #include #include #include @@ -185,7 +186,8 @@ permissive_name(const char *name) wsp += 4; slen -= 4; } - wcsncpy_s(wsp, slen, wnp, _TRUNCATE); + wcsncpy(wsp, wnp, slen); + wsp[slen - 1] = L'\0'; /* Ensure null termination. */ free(wn); return (ws); } @@ -1051,7 +1053,7 @@ la_waitpid(pid_t wpid, int *status, int option) ssize_t la_write(int fd, const void *buf, size_t nbytes) { - uint32_t bytes_written; + DWORD bytes_written; #ifdef _WIN64 if (nbytes > UINT32_MAX) @@ -1108,7 +1110,9 @@ Digest_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) if (!ctx->valid) return; - CryptHashData(ctx->hash, buf, (DWORD)len, 0); + CryptHashData(ctx->hash, + (unsigned char *)(uintptr_t)buf, + (DWORD)len, 0); } static void diff --git a/libarchive/archive_windows.h b/libarchive/archive_windows.h index d3369013e..1a15a773d 100644 --- a/libarchive/archive_windows.h +++ b/libarchive/archive_windows.h @@ -86,7 +86,9 @@ #define chmod la_chmod #define close _close #define fcntl la_fcntl +#ifndef fileno #define fileno _fileno +#endif #define fstat la_fstat #define getcwd _getcwd #define lseek la_lseek @@ -262,6 +264,7 @@ typedef int pid_t; /* Message digest define */ #if !defined(HAVE_OPENSSL_MD5_H) && !defined(HAVE_OPENSSL_SHA_H) +#include typedef struct { int valid; HCRYPTPROV cryptProv;