Ruby
4.1.0dev (2026-10-05 revision 156c09533233b4d61048869c5948cb5343b7e512)
win32
dir.h
1
#ifndef RUBY_WIN32_DIR_H
2
#define RUBY_WIN32_DIR_H
3
#include <stdint.h>
/* for uint8_t */
4
#include <basetsd.h>
/* for WCHAR */
5
#include "
ruby/encoding.h
"
/* for rb_encoding */
6
7
#define DT_UNKNOWN 0
8
#define DT_DIR (S_IFDIR>>12)
9
#define DT_REG (S_IFREG>>12)
10
#define DT_LNK 10
11
#define IFTODT(m) (((m) & S_IFMT) >> 12)
12
13
struct
direct
14
{
15
long
d_namlen;
16
ino_t d_ino;
17
char
*d_name;
18
char
*d_altname;
/* short name */
19
short
d_altlen;
20
uint8_t d_type;
21
};
22
typedef
struct
{
23
WCHAR *start;
24
WCHAR *curr;
25
long
size;
26
long
nfiles;
27
long
loc;
/* [0, nfiles) */
28
struct
direct
dirstr;
29
char
*bits;
/* used for d_isdir and d_isrep */
30
}
DIR
;
31
32
33
DIR
* rb_w32_opendir(
const
char
*);
34
DIR
* rb_w32_uopendir(
const
char
*);
35
struct
direct
* rb_w32_readdir(
DIR
*,
rb_encoding
*);
36
struct
direct
* rb_w32_ureaddir(
DIR
*);
37
long
rb_w32_telldir(
DIR
*);
38
void
rb_w32_seekdir(
DIR
*,
long
);
39
void
rb_w32_rewinddir(
DIR
*);
40
int
rb_w32_closedir(
DIR
*);
41
char
*rb_w32_ugetcwd(
char
*,
int
);
42
43
#define opendir(s) rb_w32_uopendir((s))
44
#define readdir(d) rb_w32_ureaddir((d))
45
#define telldir(d) rb_w32_telldir((d))
46
#define seekdir(d, l) rb_w32_seekdir((d), (l))
47
#define rewinddir(d) rb_w32_rewinddir((d))
48
#define closedir(d) rb_w32_closedir((d))
49
#define getcwd(b, s) rb_w32_ugetcwd(b, s)
50
51
#endif
/* RUBY_WIN32_DIR_H */
encoding.h
Encoding relates APIs.
DIR
Definition
dir.h:22
OnigEncodingTypeST
Definition
onigmo.h:160
direct
Definition
dir.h:14
Generated by
1.9.8