]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/mandoc/test-fts.c
Add two missing eventhandler.h headers
[FreeBSD/FreeBSD.git] / contrib / mandoc / test-fts.c
1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <fts.h>
4 #include <stdio.h>
5 #include <string.h>
6
7 #ifdef FTS_COMPARE_CONST
8 int fts_compare(const FTSENT *const *, const FTSENT *const *);
9 #else
10 int fts_compare(const FTSENT **, const FTSENT **);
11 #endif
12
13 int
14 main(void)
15 {
16         const char      *argv[2];
17         FTS             *ftsp;
18         FTSENT          *entry;
19
20         argv[0] = ".";
21         argv[1] = (char *)NULL;
22
23         ftsp = fts_open((char * const *)argv,
24             FTS_PHYSICAL | FTS_NOCHDIR, fts_compare);
25
26         if (ftsp == NULL) {
27                 perror("fts_open");
28                 return 1;
29         }
30
31         entry = fts_read(ftsp);
32
33         if (entry == NULL) {
34                 perror("fts_read");
35                 return 1;
36         }
37
38         if (fts_set(ftsp, entry, FTS_SKIP) != 0) {
39                 perror("fts_set");
40                 return 1;
41         }
42
43         if (fts_close(ftsp) != 0) {
44                 perror("fts_close");
45                 return 1;
46         }
47
48         return 0;
49 }
50
51 int
52 #ifdef FTS_COMPARE_CONST
53 fts_compare(const FTSENT *const *a, const FTSENT *const *b)
54 #else
55 fts_compare(const FTSENT **a, const FTSENT **b)
56 #endif
57 {
58         return strcmp((*a)->fts_name, (*b)->fts_name);
59 }