Commit Graph

3722 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto 0e25448a20 mruby-io/io.c (io_check_readable): hide internal method in backtraces 2023-01-02 10:01:08 +09:00
Yukihiro "Matz" Matsumoto 7cc6a720f3 mruby-io/io.c: implement IO#readchar in C 2023-01-02 10:01:08 +09:00
Yukihiro "Matz" Matsumoto 10a5edd978 mruby-io/io.c: implement IO#getbyte in C 2023-01-02 10:01:08 +09:00
dearblue 72ab1821de Avoid IOError when returning from Dir.open
Ignore `IOError` if `Dir#close` was done in the block.
2023-01-01 17:40:50 +09:00
Yukihiro "Matz" Matsumoto 0c9798373a mruby-io/io.c (fptr_finalize): close stdin/out/err as well
if not during the termination process.
2022-12-31 17:53:20 +09:00
Yukihiro "Matz" Matsumoto 965997d91b mruby-io/io.c: implement IO#flush in C 2022-12-31 10:39:05 +09:00
Yukihiro "Matz" Matsumoto 0628669790 mruby-data/data.c (to_s): add class name in string representation 2022-12-31 07:51:09 +09:00
Yukihiro "Matz" Matsumoto b79563af60 mruby-io/test: remove test for internal IO#_read_buf 2022-12-30 13:59:21 +09:00
Yukihiro "Matz" Matsumoto a68b1200c2 mruby-io/test: test IO#ungetc 2022-12-30 13:59:01 +09:00
Yukihiro "Matz" Matsumoto 26f458baab mruby-io/io.c: implement IO#ungetc in C 2022-12-30 13:59:01 +09:00
Yukihiro "Matz" Matsumoto 99a4c1f703 mruby-io/io.c (io_buf): protect @buf from modification
Users may re-assign `@buf` using `instance_variable_set` for example.
2022-12-30 13:59:00 +09:00
Yukihiro "Matz" Matsumoto 9a6a251460 mruby-io/io.c (io_bufread_m): remove unnecessary checks 2022-12-30 13:59:00 +09:00
Yukihiro "Matz" Matsumoto af59e30710 mruby-io/io.c: implement IO#pos in C 2022-12-30 13:59:00 +09:00
Yukihiro "Matz" Matsumoto d0659b089f mruby-io/io.c: remove wrong ISO section comment 2022-12-30 13:58:59 +09:00
Yukihiro "Matz" Matsumoto d905746218 mruby-io/io.c: implement IO#seek in C 2022-12-30 13:58:59 +09:00
Yukihiro "Matz" Matsumoto 14a374c6bc mruby-io/io.c: implement IO#write in C
And now `write` takes multiple string arguments
2022-12-30 13:58:59 +09:00
Yukihiro "Matz" Matsumoto 663d5715bc mruby-io/io.c: new function io_get_write_fd 2022-12-30 13:58:59 +09:00
Yukihiro "Matz" Matsumoto 5732948108 mruby-io/io.c (io_init): check opt if it's a hash
But `opt` will be ignored anyway in mruby.
2022-12-30 13:58:58 +09:00
Yukihiro "Matz" Matsumoto 0cdecd2e9e mruby-io/io.c (io_init): remove redundant code 2022-12-30 13:58:58 +09:00
Yukihiro "Matz" Matsumoto ef0b43d9a1 mruby-io/test/io.rb: specify access mode for IO.{sysopen,open} in tests 2022-12-30 13:58:58 +09:00
John Bampton 41572d71b6 Remove blank line from the top of Ruby files 2022-12-29 14:29:48 +10:00
Yukihiro "Matz" Matsumoto 9dbcdd51c2 mruby-io/io.c (io_sysseek): fixed wrong condition when off_t < mrb_int 2022-12-29 12:19:57 +09:00
Yukihiro "Matz" Matsumoto 142915acd6 mruby-io: mistakenly committed WIP code, sigh 2022-12-29 11:44:35 +09:00
Yukihiro "Matz" Matsumoto 80e5c8a90a mruby-io/io.c: forgot to rename mrb_io_pread on non-Unix platforms 2022-12-29 11:37:28 +09:00
Yukihiro "Matz" Matsumoto 5401d95017 mruby-io/ext/io.h: remove unused macros 2022-12-29 11:22:37 +09:00
Yukihiro "Matz" Matsumoto aa3005da02 mruby-io/io.c: remove mrb_ prefix from function names 2022-12-29 11:22:37 +09:00
Yukihiro "Matz" Matsumoto 0172388aa2 mruby-io/io.c: rename mrb_io_read_write_size to fssize_t 2022-12-29 11:22:36 +09:00
Yukihiro "Matz" Matsumoto c83b715f0c mruby-io/io.c: small format updates 2022-12-29 11:22:36 +09:00
Yukihiro "Matz" Matsumoto 8e1a82b424 mruby-io/io.c: raise error if seek position is too big 2022-12-29 11:22:36 +09:00
Yukihiro "Matz" Matsumoto f3a5f3ee1d mruby-io/io.c: define seek constants in C
From C macro definitions instead of literal integers (may differ from
the platform's definitions).

- SEEK_SET
- SEEK_CUR
- SEEK_END
2022-12-29 11:22:35 +09:00
Yukihiro "Matz" Matsumoto 830c882f06 mruby-io/io.rb (IO.read): should not allow path starting "|"
It was made obsolete long time ago.
2022-12-29 11:22:35 +09:00
Yukihiro "Matz" Matsumoto 20606c4455 mruby-io/io.rb: update a comment 2022-12-29 11:20:52 +09:00
Yukihiro "Matz" Matsumoto ba1b12948d mruby-io/io.c: implement _read_buf in C 2022-12-29 11:20:51 +09:00
Yukihiro "Matz" Matsumoto 1940bec0af mruby-io/io.c: rename mrb_dup to clearer sysdup 2022-12-29 11:20:51 +09:00
Yukihiro "Matz" Matsumoto 7ef0b6e66e mruby-io/io.c (mrb_io_initialize_copy): dupe the buffer 2022-12-29 11:20:51 +09:00
Yukihiro "Matz" Matsumoto 2d765bfa90 mruby-io/io.c: use MRB_IVSYM() instead of mrb_intern_lit() 2022-12-29 11:20:51 +09:00
Yukihiro "Matz" Matsumoto fb8cfa8a90 mruby-io/io.c: rename functions
Remove the word `dummy` from working function names.
2022-12-29 11:20:50 +09:00
Yukihiro "Matz" Matsumoto 7b130004da mruby-io/io.c: reorder functions to remove function prototype 2022-12-29 11:20:50 +09:00
Yukihiro "Matz" Matsumoto 8a6344b64f mruby-io/io.c (mrb_io_readchar): avoid redundant call to mrb_utf8len() 2022-12-29 11:20:50 +09:00
Yukihiro "Matz" Matsumoto 2970607267 mruby-io/io.c (mrb_io_readchar): RSTRING_PTR(buf) never be NULL 2022-12-29 11:20:50 +09:00
Yukihiro "Matz" Matsumoto 5c36a768f7 mruby-io/io.c (mrb_io_readchar): no need to pass @buf 2022-12-29 11:20:49 +09:00
John Bampton efd0e52cfd Remove # coding: utf-8 from Ruby file
The default script encoding is Encoding::UTF-8 after v2.0.

https://ruby-doc.org/core-2.1.2/Encoding.html#class-Encoding-label-Script+encoding
2022-12-29 10:15:48 +10:00
Yukihiro "Matz" Matsumoto bb3f403511 Merge pull request #5876 from dearblue/dir-foreach
Close the directory object with the `Dir.foreach` method
2022-12-26 13:27:53 +09:00
Yukihiro "Matz" Matsumoto 3518d15d04 Merge pull request #5875 from dearblue/dir-cstr
Get argument of the `Dir` method takes a C string directly
2022-12-26 13:26:56 +09:00
Yukihiro "Matz" Matsumoto 2656a92380 Merge pull request #5874 from dearblue/dir-funcs
Hide substance functions of methods in `mruby-dir`
2022-12-26 12:58:44 +09:00
dearblue 50b24c124f Close the directory object with the Dir.foreach method 2022-12-25 21:25:30 +09:00
dearblue 1fb19ca046 Get argument of the Dir method takes a C string directly 2022-12-25 21:25:30 +09:00
dearblue 71df263bdf Hide substance functions of methods in mruby-dir 2022-12-25 21:25:30 +09:00
dearblue 35490c2c32 Define also the exception class IOError in mruby-dir
Since `IOError` is a standard exception class in Ruby, there is no need to assume different superclasses.
The Ruby specification allows repeated class definitions as long as the superclass is the same.

This also avoids using the `mruby/ext/io.h` file to reference `E_IO_ERROR`.
2022-12-25 21:25:21 +09:00
dearblue fec74cd040 Avoid uses mruby/src/error.h file 2022-12-25 17:31:53 +09:00