diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-03-08 19:01:29 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-03-08 19:01:29 +0900 |
| commit | e15e6e761edc33d9e1b315738bdc788654e06428 (patch) | |
| tree | 29dd4d453a56ab0a091b1996f11a8b92727e885f | |
| parent | 7c85a1ff073dabb2495e4146032ea54930308623 (diff) | |
| parent | 1cc270f0ccad71356bc1cdee7ffc7db4bf106afa (diff) | |
| download | mruby-e15e6e761edc33d9e1b315738bdc788654e06428.tar.gz mruby-e15e6e761edc33d9e1b315738bdc788654e06428.zip | |
Merge branch 'master' into BuildAndroid
| -rw-r--r-- | AUTHORS | 2 | ||||
| -rw-r--r-- | mrbgems/mruby-io/src/file.c | 13 |
2 files changed, 8 insertions, 7 deletions
@@ -42,4 +42,4 @@ of this list. Masahiro Wakame YAMAMOTO Masaya KOBAYASHI Shuji - RIZAL Reckordp
\ No newline at end of file + RIZAL Reckordp diff --git a/mrbgems/mruby-io/src/file.c b/mrbgems/mruby-io/src/file.c index d3da5daaf..e166d82fa 100644 --- a/mrbgems/mruby-io/src/file.c +++ b/mrbgems/mruby-io/src/file.c @@ -287,27 +287,28 @@ mrb_file__getwd(mrb_state *mrb, mrb_value klass) #define CHECK_UNCDEV_PATH (IS_FILESEP(path[0]) && IS_FILESEP(path[1])) static int -is_absolute_traditional_path(const char *path, int len) +is_absolute_traditional_path(const char *path, size_t len) { if (len < 3) return 0; return (ISALPHA(path[0]) && IS_VOLSEP(path[1]) && IS_FILESEP(path[2])); } static int -is_aboslute_unc_path(const char *path, int len) { +is_aboslute_unc_path(const char *path, size_t len) { if (len < 2) return 0; return (CHECK_UNCDEV_PATH && !IS_DEVICEID(path[2])); } static int -is_absolute_device_path(const char *path, int len) { +is_absolute_device_path(const char *path, size_t len) { if (len < 4) return 0; return (CHECK_UNCDEV_PATH && IS_DEVICEID(path[2]) && IS_FILESEP(path[3])); } static int -mrb_file_is_absolute_path(const char *path, int len) +mrb_file_is_absolute_path(const char *path) { + size_t len = strlen(path); if (IS_FILESEP(path[0])) return 1; if (len > 0) return ( @@ -366,14 +367,14 @@ mrb_file__gethome(mrb_state *mrb, mrb_value klass) path = mrb_str_new_cstr(mrb, home); mrb_locale_free(home); return path; -#else +#else /* _WIN32 */ argc = mrb_get_argc(mrb); if (argc == 0) { home = getenv("USERPROFILE"); if (home == NULL) { return mrb_nil_value(); } - if (!mrb_file_is_absolute_path(home, strlen(home))) { + if (!mrb_file_is_absolute_path(home)) { mrb_raise(mrb, E_ARGUMENT_ERROR, "non-absolute home"); } } else { |
