diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-01-28 11:09:33 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-01-28 11:09:33 +0900 |
| commit | e7e999414cd651f6251d5a1452aa3aff827dc01a (patch) | |
| tree | f1c0e446428f6e24fa8c778f8db8d2a9ec1edbc6 /mrbgems/mruby-io/include | |
| parent | 364c47610f6349bc3059ff6435d856438befec17 (diff) | |
| parent | 69619aeeb1434c30565ff1229897cf5b1af462da (diff) | |
| download | mruby-e7e999414cd651f6251d5a1452aa3aff827dc01a.tar.gz mruby-e7e999414cd651f6251d5a1452aa3aff827dc01a.zip | |
Merge pull request #4873 from dearblue/open-flags
Support bit flags for `IO.open`
Diffstat (limited to 'mrbgems/mruby-io/include')
| -rw-r--r-- | mrbgems/mruby-io/include/mruby/ext/io.h | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/mrbgems/mruby-io/include/mruby/ext/io.h b/mrbgems/mruby-io/include/mruby/ext/io.h index 5d1dde354..4bcbbe914 100644 --- a/mrbgems/mruby-io/include/mruby/ext/io.h +++ b/mrbgems/mruby-io/include/mruby/ext/io.h @@ -19,13 +19,31 @@ struct mrb_io { is_socket:1; }; -#define FMODE_READABLE 0x00000001 -#define FMODE_WRITABLE 0x00000002 -#define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE) -#define FMODE_BINMODE 0x00000004 -#define FMODE_APPEND 0x00000040 -#define FMODE_CREATE 0x00000080 -#define FMODE_TRUNC 0x00000800 +#define MRB_O_RDONLY 0x0000 +#define MRB_O_WRONLY 0x0001 +#define MRB_O_RDWR 0x0002 +#define MRB_O_ACCMODE (MRB_O_RDONLY | MRB_O_WRONLY | MRB_O_RDWR) +#define MRB_O_NONBLOCK 0x0004 +#define MRB_O_APPEND 0x0008 +#define MRB_O_SYNC 0x0010 +#define MRB_O_NOFOLLOW 0x0020 +#define MRB_O_CREAT 0x0040 +#define MRB_O_TRUNC 0x0080 +#define MRB_O_EXCL 0x0100 +#define MRB_O_NOCTTY 0x0200 +#define MRB_O_DIRECT 0x0400 +#define MRB_O_BINARY 0x0800 +#define MRB_O_SHARE_DELETE 0x1000 +#define MRB_O_TMPFILE 0x2000 +#define MRB_O_NOATIME 0x4000 +#define MRB_O_DSYNC 0x00008000 /* Ignored with MRB_INT16 and MRB_WITHOUT_FLOAT */ +#define MRB_O_RSYNC 0x00010000 /* Ignored with MRB_INT16 and MRB_WITHOUT_FLOAT */ + +#define MRB_O_RDONLY_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_RDONLY)) +#define MRB_O_WRONLY_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_WRONLY)) +#define MRB_O_RDWR_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_RDWR)) +#define MRB_O_READABLE_P(f) ((mrb_bool)((((f) & MRB_O_ACCMODE) | 2) == 2)) +#define MRB_O_WRITABLE_P(f) ((mrb_bool)(((((f) & MRB_O_ACCMODE) + 1) & 2) == 2)) #define E_IO_ERROR (mrb_class_get(mrb, "IOError")) #define E_EOF_ERROR (mrb_class_get(mrb, "EOFError")) |
