GLOB_PERIOD is a gnu extension, and GNU glob does not seem to honor it
except in the last path component. it's not clear whether this a bug
or intentional, but it seems reasonable that it should exclude the
special entries . and .. when walking.
changes based on report and analysis by Julien Ramseier.
continue;
if (p2 && de->d_type && !S_ISDIR(de->d_type<<12) && !S_ISLNK(de->d_type<<12))
continue;
+ if (p2 && de->d_name[0]=='.' && !de->d_name[1])
+ continue;
+ if (p2 && de->d_name[0]=='.' && de->d_name[1]=='.' && !de->d_name[2])
+ continue;
if (*d) {
memcpy(name, d, l);
name[l] = '/';