X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fdirent.h;h=124c7f2241bc6c30d0010b5295823ccc1c9ddadc;hb=c39d07dd177a23079c9660d65f974861f331e29a;hp=362e5b86830cc5acb7be0fe7057c6133c674e3f7;hpb=c345e8fc46f61593dd772a9afac679005408b651;p=cc65 diff --git a/include/dirent.h b/include/dirent.h index 362e5b868..124c7f224 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -36,14 +36,14 @@ /*****************************************************************************/ -/* Data */ +/* Data */ /*****************************************************************************/ typedef struct DIR DIR; -#if defined(__APPLE2__) || defined(__APPLE2ENH__) +#if defined(__APPLE2__) struct dirent { char d_name[16]; @@ -73,24 +73,78 @@ struct dirent { } d_mtime; }; +#define _DE_ISREG(t) ((t) != 0x0F) +#define _DE_ISDIR(t) ((t) == 0x0F) +#define _DE_ISLBL(t) (0) +#define _DE_ISLNK(t) (0) + #elif defined(__ATARI__) struct dirent { - char d_name[13]; /* 8.3 + trailing 0 */ + char d_name[13]; /* 8.3 + trailing 0 */ + unsigned char d_type; +}; + +#define _DE_ISREG(t) ((t) != 0xC4) +#define _DE_ISDIR(t) ((t) == 0xC4) +#define _DE_ISLBL(t) (0) +#define _DE_ISLNK(t) (0) + +#elif defined(__CBM__) + +struct dirent { + char d_name[16+1]; + unsigned int d_off; + unsigned int d_blocks; + unsigned char d_type; /* See _CBM_T_xxx defines */ + + /* bsd extensions */ + unsigned char d_namlen; +}; + +/* File type specification macros. We need definitions of CBM file types. */ +#include + +#define _DE_ISREG(t) (((t) & _CBM_T_REG) != 0) +#define _DE_ISDIR(t) ((t) == _CBM_T_DIR) +#define _DE_ISLBL(t) ((t) == _CBM_T_HEADER) +#define _DE_ISLNK(t) ((t) == _CBM_T_LNK) + +#elif defined(__LYNX__) + +struct dirent { + unsigned char d_blocks; + unsigned int d_offset; + char d_type; + void *d_address; + unsigned int d_size; }; +extern struct dirent FileEntry; +#pragma zpsym ("FileEntry"); + +#define _DE_ISREG(t) (1) +#define _DE_ISDIR(t) (0) +#define _DE_ISLBL(t) (0) +#define _DE_ISLNK(t) (0) + #else struct dirent { char d_name[1]; }; -#endif /* __APPLE2__ or __APPLE2ENH__ */ +#define _DE_ISREG(t) (1) +#define _DE_ISDIR(t) (0) +#define _DE_ISLBL(t) (0) +#define _DE_ISLNK(t) (0) + +#endif /*****************************************************************************/ -/* Code */ +/* Code */ /*****************************************************************************/ @@ -101,6 +155,10 @@ struct dirent* __fastcall__ readdir (DIR* dir); int __fastcall__ closedir (DIR* dir); +long __fastcall__ telldir (DIR* dir); + +void __fastcall__ seekdir (DIR* dir, long offs); + void __fastcall__ rewinddir (DIR* dir);