if (!(result < 0 && errno == ENOSYS))
{
have_dup3_really = 1;
+#if REPLACE_FCHDIR
+ if (0 <= result)
+ result = _gl_register_dup (oldfd, newfd);
+#endif
return result;
}
have_dup3_really = -1;
errno = saved_errno;
}
+#if REPLACE_FCHDIR
+ if (result == newfd)
+ result = _gl_register_dup (oldfd, newfd);
+#endif
return result;
}
setmode (newfd, O_TEXT);
#endif
+#if REPLACE_FCHDIR
+ newfd = _gl_register_dup (oldfd, newfd);
+#endif
return newfd;
}