00001 #ifndef RUBY_WIN32_DIR_H 00002 #define RUBY_WIN32_DIR_H 00003 00004 #ifdef __BORLANDC__ 00005 # ifndef WIN32_DIR_H_ 00006 # define WIN32_DIR_H_ 00007 # include <sys/types.h> 00008 # endif 00009 #endif 00010 00011 struct direct 00012 { 00013 long d_namlen; 00014 ino_t d_ino; 00015 char *d_name; 00016 char d_isdir; /* directory */ 00017 char d_isrep; /* reparse point */ 00018 }; 00019 typedef struct { 00020 WCHAR *start; 00021 WCHAR *curr; 00022 long size; 00023 long nfiles; 00024 long loc; /* [0, nfiles) */ 00025 struct direct dirstr; 00026 char *bits; /* used for d_isdir and d_isrep */ 00027 } DIR; 00028 00029 00030 DIR* rb_w32_opendir(const char*); 00031 struct direct* rb_w32_readdir(DIR *); 00032 struct direct* rb_w32_readdir_with_enc(DIR *, rb_encoding *); 00033 long rb_w32_telldir(DIR *); 00034 void rb_w32_seekdir(DIR *, long); 00035 void rb_w32_rewinddir(DIR *); 00036 void rb_w32_closedir(DIR *); 00037 00038 #define opendir rb_w32_opendir 00039 #define readdir rb_w32_readdir 00040 #define telldir rb_w32_telldir 00041 #define seekdir rb_w32_seekdir 00042 #define rewinddir rb_w32_rewinddir 00043 #define closedir rb_w32_closedir 00044 00045 #endif /* RUBY_WIN32_DIR_H */ 00046