diff --git a/src/fish_tests.cpp b/src/fish_tests.cpp index 889dfbb8d..8adf4ca32 100644 --- a/src/fish_tests.cpp +++ b/src/fish_tests.cpp @@ -1513,6 +1513,15 @@ static void test_expand() expand_test(L"/tmp/fish_expand_test/b**", 0, L"/tmp/fish_expand_test/b", L"/tmp/fish_expand_test/b/x", L"/tmp/fish_expand_test/bar", L"/tmp/fish_expand_test/bax", L"/tmp/fish_expand_test/bax/xxx", L"/tmp/fish_expand_test/baz", L"/tmp/fish_expand_test/baz/xxx", L"/tmp/fish_expand_test/baz/yyy", wnull, L"Glob did the wrong thing 4"); + + // a trailing slash should only produce directories + expand_test(L"/tmp/fish_expand_test/b*/", 0, + L"/tmp/fish_expand_test/b/", L"/tmp/fish_expand_test/baz/", L"/tmp/fish_expand_test/bax/", wnull, + L"Glob did the wrong thing 5"); + + expand_test(L"/tmp/fish_expand_test/b**/", 0, + L"/tmp/fish_expand_test/b/", L"/tmp/fish_expand_test/baz/", L"/tmp/fish_expand_test/bax/", wnull, + L"Glob did the wrong thing 6"); expand_test(L"/tmp/fish_expand_test/BA", EXPAND_FOR_COMPLETIONS, L"/tmp/fish_expand_test/bar", L"/tmp/fish_expand_test/bax/", L"/tmp/fish_expand_test/baz/", wnull, diff --git a/src/wildcard.cpp b/src/wildcard.cpp index 3afbe84c0..ad8c8be64 100644 --- a/src/wildcard.cpp +++ b/src/wildcard.cpp @@ -787,7 +787,7 @@ void wildcard_expander_t::expand_trailing_slash(const wcstring &base_dir) if (! (flags & EXPAND_FOR_COMPLETIONS)) { /* Trailing slash and not accepting incomplete, e.g. `echo /tmp/`. Insert this file if it exists. */ - if (waccess(base_dir, F_OK)) + if (waccess(base_dir, F_OK) == 0) { this->add_expansion_result(base_dir); }