h = FindFirstFile(findfile, &fdat);
if (h == INVALID_HANDLE_VALUE)
return NULL;
+ sfree(findfile);
ret = snew(DirHandle);
ret->h = h;
char *read_filename(DirHandle *dir)
{
- if (!dir->name) {
+ while (!dir->name) {
WIN32_FIND_DATA fdat;
int ok = FindNextFile(dir->h, &fdat);
- if (ok)
+ if (!ok)
+ return NULL;
+
+ if (fdat.cFileName[0] == '.' &&
+ (fdat.cFileName[1] == '\0' ||
+ (fdat.cFileName[1] == '.' && fdat.cFileName[2] == '\0')))
+ dir->name = NULL;
+ else
dir->name = dupstr(fdat.cFileName);
}
return CreateDirectory(name, NULL) != 0;
}
+char *dir_file_cat(char *dir, char *file)
+{
+ return dupcat(dir, "\\", file, NULL);
+}
+
/* ----------------------------------------------------------------------
* Platform-specific network handling.
*/