mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
posix.c: Set errno when pipe2 is not available and flags provided.
If pipe2 is not available (e.g. on MacOS) and flags are set, SCM_SYSERROR was correctly signaled, however errno was not set, so it reported as: Undefined error: 0 That sucks both in tests (the test is not skipped) and in actual usage (user has no idea what went wrong). So set errno to ENOSYS as well. * libguile/posix.c (scm_pipe2) [!HAVE_PIPE2] <c_flags>: Set errno to ENOSYS. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
ff256c356b
commit
0175343deb
1 changed files with 1 additions and 1 deletions
|
@ -282,7 +282,7 @@ SCM_DEFINE (scm_pipe2, "pipe", 0, 1, 0,
|
||||||
/* 'pipe2' cannot be emulated on systems that lack it: calling
|
/* 'pipe2' cannot be emulated on systems that lack it: calling
|
||||||
'fnctl' afterwards to set the relevant flags is not equivalent
|
'fnctl' afterwards to set the relevant flags is not equivalent
|
||||||
because it's not atomic. */
|
because it's not atomic. */
|
||||||
rv = ENOSYS;
|
rv = -1, errno = ENOSYS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (rv)
|
if (rv)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue