home *** CD-ROM | disk | FTP | other *** search
- /*
-
- CDIRENT.H
-
- (c) 1996 Oliver Kraus
-
- UNIX compatible directory/file access
-
- */
-
- #ifndef _CDIRENT_H
- #define _CDIRENT_H
-
- struct c_dirent
- {
- unsigned long d_size; /* file-size */
- unsigned long d_ino; /* directory file number */
- unsigned long d_off; /* offset of the next non empty directory */
- unsigned short d_reclen; /* size of the current dirent record */
- short d_is_dir;
- char d_short_name[14]; /* old MSDOS 8.3 filenames */
- char d_name[1]; /* at most MAXNAMLEN characters */
- };
-
- struct _CDIR_struct
- {
- char *path;
- char *pat;
- char *ptr;
- size_t pos;
- size_t max;
- size_t cnt;
- int (*patmat_fn)(char *, char *);
- int options;
- };
- typedef struct _CDIR_struct CDIR;
-
- #define CDIR_MATCH_CASE (0x0001)
- #define CDIR_MATCH_ALL (0x0002)
-
- char *c_strupr(char *s);
- CDIR *c_opendir(const char *path, const char *pat, int options);
- int c_closedir(CDIR *dirp);
- struct c_dirent *c_readdir(CDIR *dirp);
- void c_rewinddir(CDIR *dirp);
- long c_telldir(CDIR *dirp);
- void c_seekdir(CDIR *dirp, long pos);
-
- #define c_is_dir(dirent) ((dirent)->d_is_dir)
- #define c_get_name(dirent) ((dirent)->d_name)
- #define c_get_short_name(dirent) ((dirent)->d_short_name)
-
- char *c_strupr(char *s);
- int patmat(char *raw, char *pat);
- int upatmat(char *raw, char *pat);
-
-
- #endif
-