Project

General

Profile

Feature #9880 ยป dir-fileno.patch

akr (Akira Tanaka), 05/29/2014 11:36 AM

View differences:

configure.in (working copy)
AC_CHECK_FUNCS(clock_gettime)
AC_CHECK_FUNCS(cosh)
AC_CHECK_FUNCS(daemon)
AC_CHECK_FUNCS(dirfd)
AC_CHECK_FUNCS(dl_iterate_phdr)
AC_CHECK_FUNCS(dlopen)
AC_CHECK_FUNCS(dladdr)
dir.c (working copy)
return rb_funcall(dir, rb_intern("to_s"), 0, 0);
}
#ifdef HAVE_DIRFD
/*
* call-seq:
* dir.fileno -> integer
*
* Returns the file descriptor used in <em>dir</em>.
*
* d = Dir.new("..")
* d.fileno #=> 8
*/
static VALUE
dir_fileno(VALUE dir)
{
struct dir_data *dirp;
int fd;
GetDIR(dir, dirp);
fd = dirfd(dirp->dir);
if (fd == -1)
rb_sys_fail("dirfd");
return INT2NUM(fd);
}
#else
#define dir_fileno rb_f_notimplement
#endif
/*
* call-seq:
* dir.path -> string or nil
......
rb_define_singleton_method(rb_cDir, "entries", dir_entries, -1);
rb_define_method(rb_cDir,"initialize", dir_initialize, -1);
rb_define_method(rb_cDir,"fileno", dir_fileno, 0);
rb_define_method(rb_cDir,"path", dir_path, 0);
rb_define_method(rb_cDir,"to_path", dir_path, 0);
rb_define_method(rb_cDir,"inspect", dir_inspect, 0);
    (1-1/1)