From dd4d7e713290d9cecbebc6933e41d027bac63c8f Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 22 Nov 2019 11:28:31 +0100 Subject: Add fchownat/fchmodat mockups to libcompat for Windows Not pretty, but definitely prettier than #ifdef hell. Signed-off-by: David Oberhollenzer --- lib/compat/Makemodule.am | 3 ++- lib/compat/mockups.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 lib/compat/mockups.c (limited to 'lib/compat') diff --git a/lib/compat/Makemodule.am b/lib/compat/Makemodule.am index c197fb0..7ba3444 100644 --- a/lib/compat/Makemodule.am +++ b/lib/compat/Makemodule.am @@ -1,4 +1,5 @@ libcompat_a_SOURCES = lib/compat/getline.c lib/compat/getsubopt.c -libcompat_a_SOURCES += lib/compat/strndup.c include/compat.h +libcompat_a_SOURCES += lib/compat/strndup.c lib/compat/mockups.c +libcompat_a_SOURCES += include/compat.h noinst_LIBRARIES += libcompat.a diff --git a/lib/compat/mockups.c b/lib/compat/mockups.c new file mode 100644 index 0000000..22f0820 --- /dev/null +++ b/lib/compat/mockups.c @@ -0,0 +1,49 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * mockups.c + * + * Copyright (C) 2019 David Oberhollenzer + */ +#include "config.h" +#include "compat.h" + +#ifdef _WIN32 +int fchownat(int dirfd, const char *path, int uid, int gid, int flags) +{ + if (dirfd != AT_FDCWD) { + fputs("[FIXME] fchownat stub only supports AT_FDCWD!\n", + stderr); + return -1; + } + + if (flags != 0 && flags != AT_SYMLINK_NOFOLLOW) { + fputs("[FIXME] fchownat stub used with an unknown flag!\n", + stderr); + return -1; + } + + (void)path; + (void)uid; + (void)gid; + return 0; +} + +int fchmodat(int dirfd, const char *path, int mode, int flags) +{ + if (dirfd != AT_FDCWD) { + fputs("[FIXME] fchmodat stub only supports AT_FDCWD!\n", + stderr); + return -1; + } + + if (flags != 0 && flags != AT_SYMLINK_NOFOLLOW) { + fputs("[FIXME] fchmodat stub used with an unknown flag!\n", + stderr); + return -1; + } + + (void)path; + (void)mode; + return 0; +} +#endif -- cgit v1.2.3