mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
test: call scandir_next_with_dots() more than once
Also cosmetic reduction.
This commit is contained in:
parent
dd7c7efcfb
commit
efa059c5a4
@ -484,23 +484,16 @@ static size_t path_expand(garray_T *gap, const char_u *path, int flags)
|
||||
static const char *scandir_next_with_dots(Directory *dir)
|
||||
{
|
||||
static int count = 0;
|
||||
const char *entry = NULL;
|
||||
if (dir == NULL) {
|
||||
if (dir == NULL) { // initialize
|
||||
count = 0;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
count += 1;
|
||||
if (count == 1) {
|
||||
entry = ".";
|
||||
} else if (count == 2) {
|
||||
entry = "..";
|
||||
} else {
|
||||
entry = os_scandir_next(dir);
|
||||
if (entry == NULL) {
|
||||
count = 0;
|
||||
if (count == 1 || count == 2) {
|
||||
return (count == 1) ? "." : "..";
|
||||
}
|
||||
}
|
||||
}
|
||||
return entry;
|
||||
return os_scandir_next(dir);
|
||||
}
|
||||
|
||||
/// Implementation of path_expand().
|
||||
@ -623,7 +616,7 @@ static size_t do_path_expand(garray_T *gap, const char_u *path,
|
||||
|| os_isdir(*buf == NUL ? (char_u *)"." : (char_u *)buf)) {
|
||||
// Find all matching entries.
|
||||
char_u *name;
|
||||
scandir_next_with_dots(NULL);
|
||||
scandir_next_with_dots(NULL /* initialize */);
|
||||
while((name = (char_u *) scandir_next_with_dots(&dir)) && name != NULL) {
|
||||
if ((name[0] != '.' || starts_with_dot)
|
||||
&& ((regmatch.regprog != NULL && vim_regexec(®match, name, 0))
|
||||
|
@ -14,8 +14,12 @@ end)
|
||||
describe('glob()', function()
|
||||
it("glob('.*') returns . and .. ", function()
|
||||
eq({'.', '..'}, eval("glob('.*', 0, 1)"))
|
||||
-- Do it again to verify scandir_next_with_dots() internal state.
|
||||
eq({'.', '..'}, eval("glob('.*', 0, 1)"))
|
||||
end)
|
||||
it("glob('*') returns an empty list ", function()
|
||||
eq({}, eval("glob('*', 0, 1)"))
|
||||
-- Do it again to verify scandir_next_with_dots() internal state.
|
||||
eq({}, eval("glob('*', 0, 1)"))
|
||||
end)
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user