Ruby
2.0.0p247(2013-06-27revision41674)
|
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 DIR* rb_w32_uopendir(const char*); 00032 struct direct* rb_w32_readdir(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(s) rb_w32_opendir((s)) 00039 #define readdir(d) rb_w32_readdir((d), 0) 00040 #define telldir(d) rb_w32_telldir((d)) 00041 #define seekdir(d, l) rb_w32_seekdir((d), (l)) 00042 #define rewinddir(d) rb_w32_rewinddir((d)) 00043 #define closedir(d) rb_w32_closedir((d)) 00044 00045 #endif /* RUBY_WIN32_DIR_H */ 00046