summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-27 03:25:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-27 03:25:08 +0000
commit3e5e1b6c452d13c8c9748a046ebcd30dedf011a9 (patch)
tree948ae7c67cae5a8bf4ffe40783512331e502f108 /io.c
parente26c0d6d824101c679a7783d32f1c88cf6ffc7c9 (diff)
* io.c (null_device): the name of null device. [ruby-dev:41791]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29110 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/io.c b/io.c
index 459528255e..ea6b2a2f23 100644
--- a/io.c
+++ b/io.c
@@ -9639,6 +9639,18 @@ rb_get_argv(void)
return ARGF.argv;
}
+static const char null_device[] =
+#if defined DOSISH
+ "NUL"
+#elif defined AMIGA || defined __amigaos__
+ "NIL"
+#elif defined __VMS
+ "NL:"
+#else
+ "/dev/null"
+#endif
+ ;
+
/*
* Document-class: IOError
*
@@ -9972,6 +9984,8 @@ Init_IO(void)
rb_define_method(rb_cIO, "autoclose?", rb_io_autoclose_p, 0);
rb_define_method(rb_cIO, "autoclose=", rb_io_set_autoclose, 1);
+ rb_define_const(rb_cIO, "NULL", rb_obj_freeze(rb_usascii_str_new2(null_device)));
+
rb_define_variable("$stdin", &rb_stdin);
rb_stdin = prep_stdio(stdin, FMODE_READABLE, rb_cIO, "<STDIN>");
rb_define_hooked_variable("$stdout", &rb_stdout, 0, stdout_setter);