summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/src/file.c
AgeCommit message (Collapse)Author
2021-09-15Use `struct` initializer instead of `memset`.Yukihiro "Matz" Matsumoto
2021-09-01Do no use return values from `mrb_ensure_` functions.Yukihiro "Matz" Matsumoto
They return the checking argument without modification, so the values are already there. Maybe we should change the return type to `void` but keep them unchanged for compatibility.
2021-07-25Remove redundant include headers.Yukihiro "Matz" Matsumoto
- stdlib.h - stddef.h - stdint.h - stdarg.h - limits.h - float.h
2021-05-17Global renaming regarding `integer` and `float`.Yukihiro "Matz" Matsumoto
Consistent number conversion function names: * `mrb_value` to immediate (C) value * `mrb_int()` -> `mrb_as_int()` * `mrb_to_flo()` -> `mrb_as_float()` * `mrb_value` to `mrb_value` (converted) * `mrb_to_int()' * `mrb_Integer()` - removed * `mrb_Float()` -> `mrb_to_float` Consistent function name (avoid `_flo` suffix): * `mrb_div_flo()` -> `mrb_div_float`
2021-02-26Use `MRB_SYM()` more extensively.Yukihiro "Matz" Matsumoto
2021-01-26Revert "Minimize the changes in #5277"Yukihiro "Matz" Matsumoto
This reverts commit dc51d89ac22acc60b9bfeed87115863565b74085.
2021-01-22Minimize the changes in #5277Yukihiro "Matz" Matsumoto
Instead of including `mruby/presym.h` everywhere, we provided the fallback `mruby/presym.inc` under `include/mruby` directory, and specify `-I<build-dir>/include` before `-I<top-dir>/include` in `presym.rake`. So even when someone drops `-I<build-dir>/include` in compiler options, it just compiles without failure.
2021-01-11Avoid including `presym.inc` in existing header filesKOBAYASHI Shuji
Addressed an issue where existing programs linking `libmruby.a` could only be built by adding `<build-dir>/include` to compiler's include path.
2020-12-17feat(CI): add a GitHub Action to check spellingJohn Bampton
- Fix spelling - Run only on pull request - Using https://github.com/client9/misspell
2020-12-15refactor: remove trailing whitespace from C, Header, Ruby and YAML filesJohn Bampton
Lint
2020-11-24Use more `mrb_int_value()` instead of `mrb_fixnum_value()`.Yukihiro "Matz" Matsumoto
2020-11-22Remove `mrb_str_buf_new()` and `MRB_STR_BUF_MIN_SIZE`; close #5171Yukihiro "Matz" Matsumoto
2020-10-22Prohibit array changes by "a"/"*" specifier of `mrb_get_args()`dearblue
The "a"/"*" specifier of the `mrb_get_args()` function will now return `const mrb_value *`. This is because it is difficult for the caller to check if it is an array object and write-barrier if necessary. And it requires calling `mrb_ary_modify()` on the unmodified array object, which is also difficult (this is similar to #5087).
2020-10-12Use `mrb_int_value()` instead of `mrb_fixnum_value()`.Yukihiro "Matz" Matsumoto
Where fixnum overflow can happen.
2020-10-12Rename float configuration option names.Yukihiro "Matz" Matsumoto
- `MRB_WITHOUT_FLOAT` => `MRB_NO_FLOAT` - `MRB_USE_FLOAT` => `MRB_USE_FLOAT32` The former is to use `USE_XXX` naming convention. The latter is to make sure `float` is 32bit float and not floating point number in general.
2020-10-12Use functions that take symbols to reduce string litrals in C.Yukihiro "Matz" Matsumoto
2020-09-25Prohibit string changes by "s"/"z" specifier of `mrb_get_args()`dearblue
- The `s` specifier is a string pointer obtained without performing `mrb_str_modify()`, so it cannot be changed. - The `z` specifier cannot be changed because it is a string pointer obtained by `RSTRING_CSTR()` which returns `const char *`.
2020-08-29mruby-io: Fixing compilation issue under the legacy MinGW environmentSiZiOUS
Adding MRB_MINGW32_LEGACY in common.h in order to identify the legacy MinGW environment (i.e. NOT to be confused with MinGW-w64). For more info about MinGW defined macros, see: https://sourceforge.net/p/predef/wiki/Compilers/
2020-08-11Use `struct _stat32` instead of `struct __stat32`dearblue
It is described as `struct __stat32` in the MSVC reference manual. https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions?view=vs-2019 But it doesn't really exist, so it must use `struct _stat32`. It also replaces `struct __stat64` with `struct _stat64` to make it look nicer.
2020-08-11Fixed VC `fstat` issue.Yukihiro "Matz" Matsumoto
2020-08-11Should use `_fstat32()` on 32bit Windows.Yukihiro "Matz" Matsumoto
2020-08-10Avoid using `mrb_funcall()` from `mruby-io` gem.Yukihiro "Matz" Matsumoto
2020-06-20Add `mrb_get_arg1()` that retrieves single (and only) argument.Yukihiro "Matz" Matsumoto
`mrb_get_arg1()` raises `ArgumentError` if the method does not receive one argument. And replaces all `mrb_get_args(mrb, "o", &arg)` by the new function.
2020-06-03Hiding method implementation C functions in mruby-iodearblue
2020-05-11Make `off_t` handling simpler; #4872 #4939Yukihiro "Matz" Matsumoto
The newer `clang` warns implicit float conversions.
2020-03-08Small refactoring on #4952Yukihiro "Matz" Matsumoto
Fix the argument of `mrb_file_is_absolute_path()`.
2020-03-08Traditional, UNC, and Device Is Absolute?Reckordp
2020-03-08Evaluate all type pathReckordp
2020-03-07Add absolute path for UNCReckordp
2020-03-07Fix typoReckordp
2020-03-07Merge the update suggested by @mattn; ref #4950Yukihiro "Matz" Matsumoto
2020-03-07Merge pull request #4950 from Reckordp/masterYukihiro "Matz" Matsumoto
Absolute path for windows
2020-03-07Absolute path for windowsReckordp
2020-01-31Add explicit casting in `file.c` to silence warnings.Yukihiro "Matz" Matsumoto
2020-01-28Merge pull request #4873 from dearblue/open-flagsYukihiro "Matz" Matsumoto
Support bit flags for `IO.open`
2020-01-06Avoid Boxing/Unboxing of file descriptors; ref #4872Yukihiro "Matz" Matsumoto
2020-01-06Merge branch 'file-size-truncate' of https://github.com/dearblue/mruby into ↵Yukihiro "Matz" Matsumoto
dearblue-file-size-truncate
2019-12-14Support bit flags for `IO.open`dearblue
Note that this bit flags are not compatible with the native flags defined in `#include <fcntl.h>`.
2019-12-14Implement `File#size` and `File#truncate`dearblue
2019-12-14Remove unnessesary branchesdearblue
2019-11-01Fix argument specs to `File`KOBAYASHI Shuji
2019-10-10Silence double free warnings by `mrb_local_free()`.Yukihiro "Matz" Matsumoto
The warnings were detected by cppcheck.
2019-08-07Reorganize `mrb_string_value_cstr` and related functions.Yukihiro "Matz" Matsumoto
`mrb_string_value_cstr` and `mrb_string_value_len`: obsolete `mrb_string_cstr`: new function to retrieve NULL terminated C string `RSTRING_CSTR`: wrapper macro of `mrb_string_cstr`
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2019-05-10Move `mrb_gc_arena_restore` to inside the loop in `mrb_file_s_chmod`KOBAYASHI Shuji
2019-05-06Avoid using `mrb_str_to_cstr` if possibleKOBAYASHI Shuji
Because it always allocate new string. Replace with the followings: - Use `RSRING_PTR` if string is guaranteed to be null-terminated. - Use `mrb_string_value_cstr` or `mrb_get_args("z")` if return value isn't modified.
2018-11-19Remove implicit conversion using `to_str` method; fix #3854Yukihiro "Matz" Matsumoto
We have added internal convenience method `__to_str` which does string type check. The issue #3854 was fixed but fundamental flaw of lack of stack depth check along with fibers still remains. Use `MRB_GC_FIXED_ARENA` for workaround.
2018-08-13Try to fix a fragile `File#mtime` test.Yukihiro "Matz" Matsumoto
2018-07-02Support MRB_WITHOUT_FLOAT to mruby-ioYusuke Endoh
2018-06-19Merge pull request #4047 from kou/stop-to-use-freed-valueYukihiro "Matz" Matsumoto
Stop to use freed value