# include <dirent.h>
# include "dgd.h"
static DIR *d;
/*
* NAME: P->opendir()
* DESCRIPTION: open a directory
*/
bool P_opendir(char *dir)
{
d = opendir(dir);
return (d != (DIR *) NULL);
}
/*
* NAME: P->readdir()
* DESCRIPTION: read a directory, skipping . and ..
*/
char *P_readdir()
{
register struct dirent *de;
do {
de = readdir(d);
if (de == (struct dirent *) NULL) {
return (char *) NULL;
}
} while (de->d_name[0] == '.' && (de->d_name[1] == '\0' ||
(de->d_name[1] == '.' && de->d_name[2] == '\0')));
return de->d_name;
}
/*
* NAME: P->closedir()
* DESCRIPTION: close a directory
*/
void P_closedir()
{
closedir(d);
}