COMPAT_CFLAGS += -DNO_PREAD
COMPAT_OBJS += compat/pread.o
endif
-ifdef NO_WRITEV
- COMPAT_CFLAGS += -DNO_WRITEV
- COMPAT_OBJS += compat/writev.o
-endif
ifdef NO_FAST_WORKING_DIRECTORY
BASIC_CFLAGS += -DNO_FAST_WORKING_DIRECTORY
endif
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/statvfs.h>
-#ifndef NO_WRITEV
-#include <sys/uio.h>
-#endif
#include <termios.h>
#ifndef NO_SYS_SELECT_H
#include <sys/select.h>
ssize_t git_pread(int fd, void *buf, size_t count, off_t offset);
#endif
-#ifdef NO_WRITEV
-#define writev git_writev
-#define iovec git_iovec
-struct git_iovec {
- void *iov_base;
- size_t iov_len;
-};
-
-ssize_t git_writev(int fd, const struct iovec *iov, int iovcnt);
-#endif
-
#ifdef NO_SETENV
#define setenv gitsetenv
int gitsetenv(const char *, const char *, int);
+++ /dev/null
-#include "../git-compat-util.h"
-#include "../wrapper.h"
-
-ssize_t git_writev(int fd, const struct iovec *iov, int iovcnt)
-{
- size_t total_written = 0;
- size_t sum = 0;
-
- /*
- * According to writev(3p), the syscall shall error with EINVAL in case
- * the sum of `iov_len` overflows `ssize_t`.
- */
- for (int i = 0; i < iovcnt; i++) {
- if (iov[i].iov_len > maximum_signed_value_of_type(ssize_t) ||
- iov[i].iov_len + sum > maximum_signed_value_of_type(ssize_t)) {
- errno = EINVAL;
- return -1;
- }
-
- sum += iov[i].iov_len;
- }
-
- for (int i = 0; i < iovcnt; i++) {
- const char *bytes = iov[i].iov_base;
- size_t iovec_written = 0;
-
- while (iovec_written < iov[i].iov_len) {
- ssize_t bytes_written = xwrite(fd, bytes + iovec_written,
- iov[i].iov_len - iovec_written);
- if (bytes_written < 0) {
- if (total_written)
- goto out;
- return bytes_written;
- }
- if (!bytes_written)
- goto out;
- iovec_written += bytes_written;
- total_written += bytes_written;
- }
- }
-
-out:
- return (ssize_t) total_written;
-}
SANE_TOOL_PATH ?= $(msvc_bin_dir_msys)
HAVE_ALLOCA_H = YesPlease
NO_PREAD = YesPlease
- NO_WRITEV = YesPlease
NEEDS_CRYPTO_WITH_SSL = YesPlease
NO_LIBGEN_H = YesPlease
NO_POLL = YesPlease
pathsep = ;
HAVE_ALLOCA_H = YesPlease
NO_PREAD = YesPlease
- NO_WRITEV = YesPlease
NEEDS_CRYPTO_WITH_SSL = YesPlease
NO_LIBGEN_H = YesPlease
NO_POLL = YesPlease
'initgroups' : [],
'strtoumax' : ['strtoumax.c', 'strtoimax.c'],
'pread' : ['pread.c'],
- 'writev' : ['writev.c'],
}
if host_machine.system() == 'windows'