From 2df419cdb5295b405a98d24f0226cb42bfbf37d2 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 23 Sep 2023 00:15:46 -0700 Subject: New function: rlink. This uses the linkat function to implement a variant of link which resolves the source object if it is a symlink. * configure: test for linkat. * sysif.c (link_wrap_common): New static function, used by both link_wrap and rlink_wrap. (link_wrap): Now a one-liner which calls link_wrap_common. (rlink_wrap): New static function. (sysif_init): Register rlink intrinsic. * txr.1: Documented. --- configure | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'configure') diff --git a/configure b/configure index 51f7723c..256abb72 100755 --- a/configure +++ b/configure @@ -2665,6 +2665,26 @@ else printf "no\n" fi +printf "Checking for linkat ... " + +cat > conftest.c < +#include + +int main(void) +{ + int e1 = linkat(AT_FDCWD, "foo", AT_FDCWD, "bar", AT_SYMLINK_FOLLOW); + return 0; +} +! +if conftest ; then + printf "yes\n" + printf "#define HAVE_LINKAT 1\n" >> config.h + have_unistd=y +else + printf "no\n" +fi + printf "Checking for POSIX mkdir ... " cat > conftest.c <