Project

General

Profile

Bug #15649 ยป 0001-dir.c-fix-Dir.glob-starts-with-brace.patch

h.shirosaki (Hiroshi Shirosaki), 03/20/2019 01:32 AM

View differences:

dir.c
return status;
}
static int ruby_glob0(const char *path, int fd, const char *base, int flags,
const ruby_glob_funcs_t *funcs, VALUE arg, rb_encoding *enc);
struct push_glob0_args {
int fd;
const char *base;
int flags;
const ruby_glob_funcs_t *funcs;
VALUE arg;
};
static int
push_glob0_caller(const char *path, VALUE val, void *enc)
{
struct push_glob0_args *arg = (struct push_glob0_args *)val;
return ruby_glob0(path, arg->fd, arg->base, arg->flags, arg->funcs, arg->arg, enc);
}
static int
ruby_glob0(const char *path, int fd, const char *base, int flags,
const ruby_glob_funcs_t *funcs, VALUE arg,
......
int status, dirsep = FALSE;
start = root = path;
if (*root == '{') {
struct push_glob0_args args;
args.fd = fd;
args.base = base;
args.flags = flags;
args.funcs = funcs;
args.arg = arg;
return ruby_brace_expand(path, flags, push_glob0_caller, (VALUE)&args, enc, Qfalse);
}
flags |= FNM_SYSCASE;
#if defined DOSISH
root = rb_enc_path_skip_prefix(root, root + strlen(root), enc);
test/ruby/test_dir.rb
end
end
def test_glob_starts_with_brace
Dir.chdir(@root) do
bug15649 = '[ruby-core:91728] [Bug #15649]'
assert_equal(["#{@root}/a", "#{@root}/b"],
Dir.glob("{#{@root}/a,#{@root}/b}"), bug15649)
end
end
if Process.const_defined?(:RLIMIT_NOFILE)
def test_glob_too_may_open_files
assert_separately([], "#{<<-"begin;"}\n#{<<-'end;'}", chdir: @root)
    (1-1/1)