diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | file.c | 7 |
3 files changed, 13 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Tue Apr 22 23:56:24 2014 NAKAMURA Usaku <usa@ruby-lang.org> + + * file.c (rb_io_stafs): use statfs(2) if fstatfs(2) is unavailable. + + * configure.in (fstatfs): check it. + Tue Apr 22 23:14:28 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/stringio/stringio.c (strio_write): use rb_str_append to diff --git a/configure.in b/configure.in index 44b7e2c3ed..d7a479f4a6 100644 --- a/configure.in +++ b/configure.in @@ -1946,6 +1946,7 @@ AC_CHECK_FUNCS(fcntl) AC_CHECK_FUNCS(fdatasync) AC_CHECK_FUNCS(fmod) AC_CHECK_FUNCS(fork) +AC_CHECK_FUNCS(fstatfs) AC_CHECK_FUNCS(fsync) AC_CHECK_FUNCS(ftruncate) AC_CHECK_FUNCS(ftruncate64) # used for Win32 platform @@ -1120,7 +1120,12 @@ rb_io_statfs(VALUE obj) struct statfs st; GetOpenFile(obj, fptr); - if (fstatfs(fptr->fd, &st) == -1) { +#ifdef HAVE_FSTATFS + if (fstatfs(fptr->fd, &st) == -1) +#else + if (statfs(RSTRING_PTR(fptr->pathv), &st) == -1) +#endif + { rb_sys_fail_path(fptr->pathv); } return rb_statfs_new(&st); |