diff --git a/ext/pathname/pathname.c b/ext/pathname/pathname.c index 9cf6c32039..70f82583a1 100644 --- a/ext/pathname/pathname.c +++ b/ext/pathname/pathname.c @@ -1092,10 +1092,10 @@ s_glob_i(RB_BLOCK_CALL_FUNC_ARGLIST(elt, klass)) static VALUE path_s_glob(int argc, VALUE *argv, VALUE klass) { - VALUE args[2]; + VALUE args[3]; int n; - n = rb_scan_args(argc, argv, "11", &args[0], &args[1]); + n = rb_scan_args(argc, argv, "12", &args[0], &args[1], &args[2]); if (rb_block_given_p()) { return rb_block_call(rb_cDir, id_glob, n, args, s_glob_i, klass); } diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb index 8e6681232b..076a73e50b 100644 --- a/test/pathname/test_pathname.rb +++ b/test/pathname/test_pathname.rb @@ -1251,6 +1251,17 @@ class TestPathname < Test::Unit::TestCase } end + def test_s_glob_3args + with_tmpchdir('rubytest-pathname') {|dir| + open("f", "w") {|f| f.write "abc" } + Dir.chdir("/") { + assert_equal( + [Pathname("."), Pathname(".."), Pathname("f")], + Pathname.glob("*", File::FNM_DOTMATCH, base: dir).sort) + } + } + end + def test_s_getwd wd = Pathname.getwd assert_kind_of(Pathname, wd)