<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/ae88daa43c2b0dddb855bb0bf1e6ef4a0f9e8c53">https://github.com/macports/macports-legacy-support/commit/ae88daa43c2b0dddb855bb0bf1e6ef4a0f9e8c53</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new ae88daa  Add compatibility entries for obsolete __mpls_* funcs.
</span>ae88daa is described below

<span style='display:block; white-space:pre;color:#808000;'>commit ae88daa43c2b0dddb855bb0bf1e6ef4a0f9e8c53
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sat Mar 2 21:41:43 2024 -0800

<span style='display:block; white-space:pre;color:#404040;'>    Add compatibility entries for obsolete __mpls_* funcs.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The __mpls_* wrappers are no longer needed for the new fdopendir()
</span><span style='display:block; white-space:pre;color:#404040;'>    implementation, but many existing dependents may still have references
</span><span style='display:block; white-space:pre;color:#404040;'>    to them.  This adds those functions back as transparent wrappers for
</span><span style='display:block; white-space:pre;color:#404040;'>    the corresponding OS calls.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This also adds tests for the wrappers, by applying the existing tests
</span><span style='display:block; white-space:pre;color:#404040;'>    (in test_fdopendir) to the wrappers via macro replacements.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Tested on 10.4-10.5 ppc, 10.5-10.6 ppc (x86_64 Rosetta), 10.4-10.6
</span><span style='display:block; white-space:pre;color:#404040;'>    i386, 10.4-12.x x86_64, and 11.x-14.x arm64.
</span><span style='display:block; white-space:pre;color:#404040;'>    Builds on all tested platforms except 10.5 ppc +universal, and passes
</span><span style='display:block; white-space:pre;color:#404040;'>    all tests in all buildable cases, including the new tests.
</span><span style='display:block; white-space:pre;color:#404040;'>    Comparison with "nm" shows that no global definitions were removed
</span><span style='display:block; white-space:pre;color:#404040;'>    from the libraries since v1.1.1, with additions as needed for the new
</span><span style='display:block; white-space:pre;color:#404040;'>    fdopendir(), and no differences at all for OS 10.10+.
</span>---
 src/dirfuncs_compat.c       | 75 +++++++++++++++++++++++++++++++++++++++++++++
 src/dirfuncs_compat.h       | 48 +++++++++++++++++++++++++++++
 test/test_dirfuncs_compat.c | 46 +++++++++++++++++++++++++++
 test/test_fdopendir.c       |  9 +++++-
 4 files changed, 177 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/dirfuncs_compat.c b/src/dirfuncs_compat.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..782f12a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/dirfuncs_compat.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,75 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Copyright (c) 2024 Frederick H. G. Wright II <fw@fwright.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Permission to use, copy, modify, and distribute this software for any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * purpose with or without fee is hereby granted, provided that the above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * copyright notice and this permission notice appear in all copies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Earlier versions of legacy-support needed wrappers around several OS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * calls related to directories, in order to implement fdopendir().  That
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * is no longer the case, but existing dependents still reference those
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * wrapper calls.  For compatibility, we continue to provide those functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * but just as transparent wrappers around the OS calls.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This is only relevant for OS versions where our fdoopendir() is needed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * hence the conditional (which is the same conditional as was used for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * the earlier implementations).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* MP support header */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "MacportsLegacySupport.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_FDOPENDIR__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "dirfuncs_compat.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+DIR *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_opendir(const char *filename) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return opendir(filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+struct dirent *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_readdir(DIR *dirp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return readdir(dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return readdir_r(dirp, entry, result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_telldir(DIR *dirp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return telldir(dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_seekdir(DIR *dirp, long loc) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    seekdir(dirp, loc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_rewinddir(DIR *dirp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    rewinddir(dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_closedir(DIR *dirp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return closedir(dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_dirfd(DIR *dirp) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return dirfd(dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* __MP_LEGACY_SUPPORT_FDOPENDIR__ */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/dirfuncs_compat.h b/src/dirfuncs_compat.h
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4329bdc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/dirfuncs_compat.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Copyright (c) 2024 Frederick H. G. Wright II <fw@fwright.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Permission to use, copy, modify, and distribute this software for any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * purpose with or without fee is hereby granted, provided that the above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * copyright notice and this permission notice appear in all copies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Prototypes for directory function compatibility wrappers */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifndef __MP_LEGACY_SUPPORT_DIRFUNCS_COMPAT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MP_LEGACY_SUPPORT_DIRFUNCS_COMPAT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <dirent.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+DIR *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_opendir(const char *filename);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+struct dirent *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_readdir(DIR *dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_telldir(DIR *dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_seekdir(DIR *dirp, long loc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_rewinddir(DIR *dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_closedir(DIR *dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__mpls_dirfd(DIR *dirp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* __MP_LEGACY_SUPPORT_DIRFUNCS_COMPAT_H */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_dirfuncs_compat.c b/test/test_dirfuncs_compat.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6148d41
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_dirfuncs_compat.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,46 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Copyright (c) 2024 Frederick H. G. Wright II <fw@fwright.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Permission to use, copy, modify, and distribute this software for any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * purpose with or without fee is hereby granted, provided that the above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * copyright notice and this permission notice appear in all copies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This leverages the existing tests for the old __mpls_* wrappers as tests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * for the new transparent wrappers provided for compatibility, by defining
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * the relevant functions as macros and reusing all of test_fdopendir.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * For OS versions that never used the wrappers, this entire test is a dummy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* MP support header */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "MacportsLegacySupport.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_FDOPENDIR__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "../src/dirfuncs_compat.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define opendir     __mpls_opendir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define readdir     __mpls_readdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define readdir_r   __mpls_readdir_r
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define telldir     __mpls_telldir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define seekdir     __mpls_seekdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define rewinddir   __mpls_rewinddir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define closedir    __mpls_closedir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define dirfd       __mpls_dirfd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "test_fdopendir.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#else /* !__MP_LEGACY_SUPPORT_FDOPENDIR__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int main(){ return 0; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* !__MP_LEGACY_SUPPORT_FDOPENDIR__ */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_fdopendir.c b/test/test_fdopendir.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 52f62f4..9e340ea 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_fdopendir.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_fdopendir.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,7 +90,14 @@ int main() {
</span> #endif
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    /* Test wrapper functions/macros (all but readdir_r which is deprecated) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * Test wrapper functions/macros (all but readdir_r which is deprecated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * Although the wrapper functions that these tests were originally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * intended for no longer exist, these same tests are also used to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * check the transparent wrappers added for compatibility with old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * client builds.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     */
</span> 
     int dfd2 = dirfd(dir);
     if (dfd2 != dfd) {
</pre><pre style='margin:0'>

</pre>