This is a v2 of https://lists.gnu.org/archive/html/guile-devel/2021-03/msg0026.html, with a lot more tests, a few less functions and more consistent documentation. ‘rename-file-at’ has been modified to support #f as one of the two directory arguments, denoting the current working directory.
Maxime Devos (14): Allow file ports in ‘chdir’ when supported. Allow file ports in ‘readlink’. Allow file ports in ‘utime’. Define ‘symlinkat’ wrapper when supported. Define bindings to ‘mkdirat’ when the C function exists. Correct documentation of ‘mkdir’ w.r.t. the umask. Define AT_REMOVEDIR and others when available. Define a Scheme binding to ‘renameat’ when it exists. Define a Scheme binding to ‘fchmodat’ when it exists. Define a Scheme binding to ‘unlinkat’ when it exists. Define a Scheme binding to ‘fchownat’ when it exists. Define a Scheme binding to ‘fstatat’ when available. Define Scheme bindings to ‘openat’ when available. Update NEWS. NEWS | 12 + configure.ac | 9 +- doc/ref/guile.texi | 3 +- doc/ref/posix.texi | 97 +++++- libguile/filesys.c | 395 +++++++++++++++++++++++-- libguile/filesys.h | 9 + libguile/posix.c | 34 ++- libguile/posix.h | 2 +- libguile/syscalls.h | 2 + test-suite/tests/filesys.test | 536 ++++++++++++++++++++++++++++++++++ test-suite/tests/posix.test | 71 ++++- 11 files changed, 1120 insertions(+), 50 deletions(-) base-commit: 6f1b620b829bc0a1852a43e9cb843fd719954a0f -- 2.30.2