summaryrefslogtreecommitdiffstats
path: root/testing/fts/fts-uclibc.patch
blob: 18b48efb9db92e04c5d80c3c9d2668d681c5f4e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- fts.orig/fts.c
+++ fts/fts.c
@@ -31,6 +31,8 @@
  * SUCH DAMAGE.
  */
 
+#define ALIGNBYTES (alignof(long double) - 1)
+#define 	alignof(TYPE)   ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
 #if defined(LIBC_SCCS) && !defined(lint)
 static char sccsid[] = "@(#)fts.c	8.6 (Berkeley) 8/14/94";
 #endif /* LIBC_SCCS and not lint */
@@ -652,10 +654,10 @@
 		if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
 			continue;
 
-		if ((p = fts_alloc(sp, dp->d_name, (int)dp->d_namlen)) == NULL)
+		if ((p = fts_alloc(sp, dp->d_name, (int)dp->d_reclen)) == NULL)
 			goto mem1;
-		if (dp->d_namlen > maxlen) {
-			if (fts_palloc(sp, (size_t)dp->d_namlen)) {
+		if (dp->d_reclen > maxlen) {
+			if (fts_palloc(sp, (size_t)dp->d_reclen)) {
 				/*
 				 * No more memory for path or structures.  Save
 				 * errno, free up the current structure and the
@@ -675,7 +677,7 @@
 			maxlen = sp->fts_pathlen - sp->fts_cur->fts_pathlen - 1;
 		}
 
-		p->fts_pathlen = len + dp->d_namlen + 1;
+		p->fts_pathlen = len + dp->d_reclen + 1;
 		p->fts_parent = sp->fts_cur;
 		p->fts_level = level;
 
@@ -784,7 +786,7 @@
 	/* If user needs stat info, stat buffer already allocated. */
 	sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp;
 
-#ifdef DT_WHT
+#ifdef S_IFWHT
 	/*
 	 * Whited-out files don't really exist.  However, there's stat(2) file
 	 * mask for them, so we set it so that programs (i.e., find) don't have