|
|
1.1 ! root 1: /* /sccs/src/cmd/uucp/s.gnamef.c ! 2: gnamef.c 1.1 8/30/84 17:37:25 ! 3: */ ! 4: #include "uucp.h" ! 5: #ifndef READDIR ! 6: #include <sys/dir.h> ! 7: #endif ! 8: VERSION(@(#)gnamef.c 1.1); ! 9: ! 10: /* ! 11: * get next file name from directory ! 12: * p -> file description of directory file to read ! 13: * filename -> address of buffer to return filename in ! 14: * must be of size DIRSIZ+1 ! 15: * returns: ! 16: * FALSE -> end of directory read ! 17: * TRUE -> returned name ! 18: */ ! 19: gnamef(p, filename) ! 20: register char *filename; ! 21: DIR *p; ! 22: { ! 23: struct direct dentry; ! 24: register struct direct *dp = &dentry; ! 25: ! 26: while (1) { ! 27: #ifdef READDIR ! 28: if ((dp = readdir(p)) == NULL) ! 29: #else ! 30: if (fread((char *)dp, sizeof(dentry), 1, p) != 1) ! 31: #endif ! 32: return(FALSE); ! 33: if (dp->d_ino != 0 && dp->d_name[0] != '.') ! 34: break; ! 35: } ! 36: ! 37: (void) strncpy(filename, dp->d_name, MAXBASENAME); ! 38: filename[MAXBASENAME] = '\0'; ! 39: return(TRUE); ! 40: } ! 41: ! 42: /* ! 43: * get next directory name from directory ! 44: * p -> file description of directory file to read ! 45: * filename -> address of buffer to return filename in ! 46: * must be of size DIRSIZ+1 ! 47: * returns: ! 48: * FALSE -> end of directory read ! 49: * TRUE -> returned dir ! 50: */ ! 51: gdirf(p, filename, dir) ! 52: register char *filename; ! 53: DIR *p; ! 54: char *dir; ! 55: { ! 56: char statname[MAXNAMESIZE]; ! 57: ! 58: while (1) { ! 59: if(gnamef(p, filename) == FALSE) ! 60: return(FALSE); ! 61: (void) sprintf(statname, "%s/%s", dir, filename); ! 62: DEBUG(4, "stat %s\n", statname); ! 63: if (DIRECTORY(statname)) ! 64: break; ! 65: } ! 66: ! 67: return(TRUE); ! 68: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.