Merge pull request #2 from syuu1228/chdir

add Dir.chdir
This commit is contained in:
Akira Yumiyama
2013-11-15 20:50:01 -08:00
+15
View File
@@ -148,6 +148,20 @@ mrb_dir_mkdir(mrb_state *mrb, mrb_value klass)
return mrb_fixnum_value(0);
}
mrb_value
mrb_dir_chdir(mrb_state *mrb, mrb_value klass)
{
mrb_value spath;
char *path;
mrb_get_args(mrb, "S", &spath);
path = mrb_str_to_cstr(mrb, spath);
if (chdir(path) == -1) {
mrb_sys_fail(mrb, path);
}
return mrb_fixnum_value(0);
}
mrb_value
mrb_dir_read(mrb_state *mrb, mrb_value self)
{
@@ -223,6 +237,7 @@ mrb_mruby_dir_gem_init(mrb_state *mrb)
mrb_define_class_method(mrb, d, "exist?", mrb_dir_existp, MRB_ARGS_REQ(1));
mrb_define_class_method(mrb, d, "getwd", mrb_dir_getwd, MRB_ARGS_NONE());
mrb_define_class_method(mrb, d, "mkdir", mrb_dir_mkdir, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1));
mrb_define_class_method(mrb, d, "chdir", mrb_dir_chdir, MRB_ARGS_REQ(1));
mrb_define_method(mrb, d, "close", mrb_dir_close, MRB_ARGS_NONE());
mrb_define_method(mrb, d, "initialize", mrb_dir_init, MRB_ARGS_REQ(1));