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