diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-17 02:23:52 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-17 02:23:52 +0000 |
commit | 15ba9f85cf264143de586c962fe86faeebbd2d98 (patch) | |
tree | c13aa4bcf39daf2d910eed3250f1dded46f6f977 /file.c | |
parent | 9c54f61a5098c33d68ea1090e7ad7ef345c6767f (diff) | |
download | ruby-15ba9f85cf264143de586c962fe86faeebbd2d98.tar.gz |
* eval.c (THREAD_ALLOC): th->thread should be initialized to NULL.
[ruby-talk:106657] The solution was found by Guy Decoux.
* file.c (rb_stat_dev_major): new methods File::Stat#dev_major and
#dev_minor. [ruby-core:03195]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -217,6 +217,52 @@ rb_stat_dev(self) return INT2NUM(get_stat(self)->st_dev); } +/* + * call-seq: + * stat.dev_major => fixnum + * + * Returns the major part of <code>File_Stat#dev</code> or + * <code>nil</code>. + * + * File.stat("/dev/fd1").dev_major #=> 2 + * File.stat("/dev/tty").dev_major #=> 5 + */ + +static VALUE +rb_stat_dev_major(self) + VALUE self; +{ +#if defined(major) + long dev = get_stat(self)->st_dev; + return ULONG2NUM(major(dev)); +#else + return Qnil; +#endif +} + +/* + * call-seq: + * stat.dev_minor => fixnum + * + * Returns the minor part of <code>File_Stat#dev</code> or + * <code>nil</code>. + * + * File.stat("/dev/fd1").dev_minor #=> 1 + * File.stat("/dev/tty").dev_minor #=> 0 + */ + +static VALUE +rb_stat_dev_minor(self) + VALUE self; +{ +#if defined(minor) + long dev = get_stat(self)->st_dev; + return ULONG2NUM(minor(dev)); +#else + return Qnil; +#endif +} + /* * call-seq: @@ -4319,6 +4365,8 @@ Init_File() rb_define_method(rb_cStat, "<=>", rb_stat_cmp, 1); rb_define_method(rb_cStat, "dev", rb_stat_dev, 0); + rb_define_method(rb_cStat, "dev_major", rb_stat_dev_major, 0); + rb_define_method(rb_cStat, "dev_minor", rb_stat_dev_minor, 0); rb_define_method(rb_cStat, "ino", rb_stat_ino, 0); rb_define_method(rb_cStat, "mode", rb_stat_mode, 0); rb_define_method(rb_cStat, "nlink", rb_stat_nlink, 0); |