Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEshan dhawan <eshandhawan51@gmail.com>2021-01-21 01:14:27 +0300
committerCorinna Vinschen <corinna@vinschen.de>2021-02-09 13:07:59 +0300
commitd8ee634506424ce8b3bea057b84ec82dfdd7a821 (patch)
tree88f4832ccc682363ff8c47192cd09e84d1f594b7 /newlib/libc/posix/ftw.c
parent55a6e49a0813232bbca3b3e97bb03c22c5857639 (diff)
FTW Port for Newlib
Signed-off-by: Eshan Dhawan <eshandhawan51@gmail.com>
Diffstat (limited to 'newlib/libc/posix/ftw.c')
-rw-r--r--newlib/libc/posix/ftw.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/newlib/libc/posix/ftw.c b/newlib/libc/posix/ftw.c
new file mode 100644
index 000000000..18cfc24cb
--- /dev/null
+++ b/newlib/libc/posix/ftw.c
@@ -0,0 +1,33 @@
+/*
+* Copyright © 2005-2020 Rich Felker, et al.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to deal in the Software without restriction, including
+* without limitation the rights to use, copy, modify, merge, publish,
+* distribute, sublicense, and/or sell copies of the Software, and to
+* permit persons to whom the Software is furnished to do so, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be
+* included in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include <ftw.h>
+
+int ftw(const char *path, int (*fn)(const char *, const struct stat *, int), int fd_limit)
+{
+ /* The following cast assumes that calling a function with one
+ * argument more than it needs behaves as expected. This is
+ * actually undefined, but works on all real-world machines. */
+ return nftw(path, (int (*)())fn, fd_limit, FTW_PHYS);
+}
+