diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-22 11:28:31 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-11-22 11:28:31 +0100 |
commit | dd4d7e713290d9cecbebc6933e41d027bac63c8f (patch) | |
tree | e252c2ddce438e1dc80d05d30b1bedd620342a92 /lib/compat | |
parent | eafaffa0f09b7c22eed906ef5356b1460d44da55 (diff) |
Add fchownat/fchmodat mockups to libcompat for Windows
Not pretty, but definitely prettier than #ifdef hell.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/compat')
-rw-r--r-- | lib/compat/Makemodule.am | 3 | ||||
-rw-r--r-- | lib/compat/mockups.c | 49 |
2 files changed, 51 insertions, 1 deletions
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 <goliath@infraroot.at> + */ +#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 |