From ba406835155888c048da2c41eeb909fe204123cf Mon Sep 17 00:00:00 2001 From: Michael Sartain Date: Fri, 30 Oct 2015 19:10:03 -0700 Subject: [PATCH] readdir_raw was skipping all dirnames starting with dots. Only skip . and .. --- stb.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/stb.h b/stb.h index d8aaf37..c57079e 100644 --- a/stb.h +++ b/stb.h @@ -5863,6 +5863,13 @@ void stb_readdir_free(char **files) stb_arr_free(f2); } +static int isdotdirname(char *name) +{ + if (name[0] == '.') + return (name[1] == '.') ? !name[2] : !name[1]; + return 0; +} + STB_EXTERN int stb_wildmatchi(char *expr, char *candidate); static char **readdir_raw(char *dir, int return_subdirs, char *mask) { @@ -5931,7 +5938,7 @@ static char **readdir_raw(char *dir, int return_subdirs, char *mask) #endif if (is_subdir == return_subdirs) { - if (!is_subdir || name[0] != '.') { + if (!is_subdir || !isdotdirname(name)) { if (!mask || stb_wildmatchi(mask, name)) { char buffer[512],*p=buffer; sprintf(buffer, "%s%s", with_slash, name);