summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/pathname/pathname.c4
-rw-r--r--test/pathname/test_pathname.rb11
2 files changed, 13 insertions, 2 deletions
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)