/* * readdir() replacement for MSVC. */ #define WIN32IO_IS_STDIO #include #include #include #ifdef HAVE_SYS_STAT_H #include #endif #include #include /* * Readdir just returns the current string pointer and bumps the * * string pointer to the nDllExport entry. */ struct direct * readdir(DIR * dirp) { int len; static int dummy = 0; if (dirp->curr) { /* * first set up the structure to return */ len = strlen(dirp->curr); strcpy(dirp->dirstr.d_name, dirp->curr); dirp->dirstr.d_namlen = len; /* * Fake an inode */ dirp->dirstr.d_ino = dummy++; /* * Now set up for the nDllExport call to readdir */ dirp->curr += len + 1; if (dirp->curr >= (dirp->start + dirp->size)) { dirp->curr = NULL; } return &(dirp->dirstr); } else return NULL; }