Annotation of researchv10dc/cmd/library/gnamef.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.