void add (char[] prefix, char[] name, bool isDir) { char[512] tmp; int len = prefix.length + name.length; assert (len < tmp.length); ++total_; // construct full pathname tmp[0..prefix.length] = prefix; tmp[prefix.length..len] = name; auto p = new FileProxy (tmp[0 .. len], isDir); // test this entry for inclusion if (filter (p, isDir)) { printf(" prefix length: %d\n",prefix.length ); printf( "prefix: %*.s\n",prefix ); printf( "suffix: %s\n",p.suffix.ptr ); // skip dirs composed only of '.' char[] suffix = p.suffix; if (p.name.length > 0 || suffix.length > 3 || (suffix != "..."[0 .. suffix.length])) proxies ~= p; } else delete p; }