Blob Blame History Raw
#include <dirent.h>
#define T(t) (t*)0;
#define F(t,n) {t *y = &x.n;}
#define C(n) switch(n){case n:;}
static void f()
{
T(DIR)
T(struct dirent)
#ifdef _XOPEN_SOURCE
T(ino_t)
#endif
{
struct dirent x;
#ifdef _XOPEN_SOURCE
F(ino_t,  d_ino)
#endif
F(char,   d_name[0])
}
{int(*p)(const struct dirent**,const struct dirent**) = alphasort;}
{int(*p)(DIR*) = closedir;}
{int(*p)(DIR*) = dirfd;}
DIR*(*p)(int) = fdopendir;
DIR*(*p)(const char*) = opendir;
{struct dirent*(*p)(DIR*) = readdir;}
{int(*p)(DIR*restrict,struct dirent*restrict,struct dirent**restrict) = readdir_r;}
{void(*p)(DIR*) = rewinddir;}
{int(*p)(const char*,struct dirent***,int(*)(const struct dirent*),int(*)(const struct dirent**,const struct dirent**)) = scandir;}
#ifdef _XOPEN_SOURCE
{void(*p)(DIR*,long) = seekdir;}
{long(*p)(DIR*) = telldir;}
#endif
}