Annotation of 43BSDReno/include/fts.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1989 The Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms are permitted provided
        !             6:  * that: (1) source distributions retain this entire copyright notice and
        !             7:  * comment, and (2) distributions including binaries display the following
        !             8:  * acknowledgement:  ``This product includes software developed by the
        !             9:  * University of California, Berkeley and its contributors'' in the
        !            10:  * documentation or other materials provided with the distribution and in
        !            11:  * all advertising materials mentioning features or use of this software.
        !            12:  * Neither the name of the University nor the names of its contributors may
        !            13:  * be used to endorse or promote products derived from this software without
        !            14:  * specific prior written permission.
        !            15:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            16:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            17:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            18:  *
        !            19:  *     @(#)fts.h       5.8 (Berkeley) 7/1/90
        !            20:  */
        !            21: 
        !            22: typedef struct fts {
        !            23:        struct ftsent *fts_cur;         /* current node */
        !            24:        struct ftsent *fts_child;       /* linked list of children */
        !            25:        struct ftsent *fts_savelink;    /* saved link if node had a cycle */
        !            26:        struct ftsent **fts_array;      /* sort array */
        !            27:        dev_t sdev;                     /* starting device # */
        !            28:        char *fts_path;                 /* path for this descent */
        !            29:        int fts_sd;                     /* starting directory */
        !            30:        int fts_pathlen;                /* sizeof(path) */
        !            31:        int fts_nitems;                 /* elements in the sort array */
        !            32:        int (*fts_compar)();            /* compare function */
        !            33: #define        FTS__STOP       0x001           /* private: unrecoverable error */
        !            34: #define        FTS_LOGICAL     0x002           /* user: use stat(2) */
        !            35: #define        FTS_NOCHDIR     0x004           /* user: don't use chdir(2) */
        !            36: #define        FTS_NOSTAT      0x008           /* user: don't require stat info */
        !            37: #define        FTS_PHYSICAL    0x010           /* user: use lstat(2) */
        !            38: #define        FTS_SEEDOT      0x020           /* user: return dot and dot-dot */
        !            39: #define        FTS_XDEV        0x040           /* user: don't cross devices */
        !            40:        int fts_options;                /* openfts() options */
        !            41: } FTS;
        !            42: 
        !            43: typedef struct ftsent {
        !            44:        struct ftsent *fts_parent;      /* parent directory */
        !            45:        struct ftsent *fts_link;        /* next/cycle node */
        !            46:        union {
        !            47:                long number;            /* local numeric value */
        !            48:                void *pointer;          /* local address value */
        !            49:        } fts_local;
        !            50:        char *fts_accpath;              /* path from current directory */
        !            51:        char *fts_path;                 /* path from starting directory */
        !            52:        short fts_pathlen;              /* strlen(path) */
        !            53:        short fts_namelen;              /* strlen(name) */
        !            54:        short fts_level;                /* depth (-1 to N) */
        !            55: #define        FTS_D            1              /* preorder directory */
        !            56: #define        FTS_DC           2              /* directory that causes cycles */
        !            57: #define        FTS_DNR          3              /* unreadable directory */
        !            58: #define        FTS_DNX          4              /* unsearchable directory */
        !            59: #define        FTS_DP           5              /* postorder directory */
        !            60: #define        FTS_ERR          6              /* error; errno is set */
        !            61: #define        FTS_F            7              /* regular file */
        !            62: #define        FTS_NS           8              /* no stat(2) information */
        !            63: #define        FTS_SL           9              /* symbolic link */
        !            64: #define        FTS_SLNONE      10              /* symbolic link without target */
        !            65: #define        FTS_DEFAULT     11              /* none of the above */
        !            66:        u_short fts_info;               /* file information */
        !            67: #define        FTS_AGAIN        1              /* user: read node again */
        !            68: #define        FTS_SKIP         2              /* user: discard node */
        !            69: #define        FTS_FOLLOW       3              /* user: follow symbolic link */
        !            70:        short fts_instr;                /* setfts() instructions */
        !            71:        struct stat fts_statb;          /* stat(2) information */
        !            72:        char fts_name[1];               /* file name */
        !            73: } FTSENT;
        !            74: 
        !            75: #if __STDC__ || c_plusplus
        !            76: extern FTS *ftsopen(const char **, int, int (*)(const FTSENT *, const FTSENT *));
        !            77: extern FTSENT *ftsread(FTS *);
        !            78: extern FTSENT *ftschildren(FTS *);
        !            79: extern int ftsset(FTS *, FTSENT *, int);
        !            80: extern int ftsclose(FTS *);
        !            81: #else
        !            82: extern FTS *ftsopen();
        !            83: extern FTSENT *ftschildren(), *ftsread();
        !            84: extern int ftsclose(), ftsset();
        !            85: #endif

unix.superglobalmegacorp.com

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