Ruby  2.0.0p247(2013-06-27revision41674)
win32/dir.h
Go to the documentation of this file.
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