[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master f650d54 1/2: Unbreak the MS-Windows build
From: |
Eli Zaretskii |
Subject: |
master f650d54 1/2: Unbreak the MS-Windows build |
Date: |
Mon, 20 Jan 2020 11:22:24 -0500 (EST) |
branch: master
commit f650d54c6a3620d3b1c264a944023beea15fe394
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Unbreak the MS-Windows build
* src/w32.c (openat): New function.
* src/w32.h (openat): Add prototype.
---
src/w32.c | 21 +++++++++++++++++++++
src/w32.h | 1 +
2 files changed, 22 insertions(+)
diff --git a/src/w32.c b/src/w32.c
index 62c53fd..a3b9a56 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -4592,6 +4592,27 @@ sys_open (const char * path, int oflag, int mode)
}
int
+openat (int fd, const char * path, int oflag, int mode)
+{
+ /* Rely on a hack: an open directory is modeled as file descriptor 0,
+ as in fstatat. FIXME: Add proper support for openat. */
+ char fullname[MAX_UTF8_PATH];
+
+ if (fd != AT_FDCWD)
+ {
+ if (_snprintf (fullname, sizeof fullname, "%s/%s", dir_pathname, path)
+ < 0)
+ {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+ path = fullname;
+ }
+
+ return sys_open (path, oflag, mode);
+}
+
+int
fchmod (int fd, mode_t mode)
{
return 0;
diff --git a/src/w32.h b/src/w32.h
index b8655ec..f301b38 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -221,6 +221,7 @@ extern void register_child (pid_t, int);
extern void sys_sleep (int);
extern int sys_link (const char *, const char *);
+extern int openat (int, const char *, int, int);
/* Return total and free memory info. */
extern int w32_memory_info (unsigned long long *, unsigned long long *,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master f650d54 1/2: Unbreak the MS-Windows build,
Eli Zaretskii <=