V10/cmd/uucp/gnamef.c
/* /sccs/src/cmd/uucp/s.gnamef.c
gnamef.c 1.1 8/30/84 17:37:25
*/
#include "uucp.h"
#ifndef READDIR
#include <sys/dir.h>
#endif
VERSION(@(#)gnamef.c 1.1);
/*
* get next file name from directory
* p -> file description of directory file to read
* filename -> address of buffer to return filename in
* must be of size DIRSIZ+1
* returns:
* FALSE -> end of directory read
* TRUE -> returned name
*/
gnamef(p, filename)
register char *filename;
DIR *p;
{
struct direct dentry;
register struct direct *dp = &dentry;
while (1) {
#ifdef READDIR
if ((dp = readdir(p)) == NULL)
#else
if (fread((char *)dp, sizeof(dentry), 1, p) != 1)
#endif
return(FALSE);
if (dp->d_ino != 0 && dp->d_name[0] != '.')
break;
}
(void) strncpy(filename, dp->d_name, MAXBASENAME);
filename[MAXBASENAME] = '\0';
return(TRUE);
}
/*
* get next directory name from directory
* p -> file description of directory file to read
* filename -> address of buffer to return filename in
* must be of size DIRSIZ+1
* returns:
* FALSE -> end of directory read
* TRUE -> returned dir
*/
gdirf(p, filename, dir)
register char *filename;
DIR *p;
char *dir;
{
char statname[MAXNAMESIZE];
while (1) {
if(gnamef(p, filename) == FALSE)
return(FALSE);
(void) sprintf(statname, "%s/%s", dir, filename);
DEBUG(4, "stat %s\n", statname);
if (DIRECTORY(statname))
break;
}
return(TRUE);
}