static FileList FileList_new(int capacity) { FileList fl = NEW_(FileList); fl->capacity = capacity; fl->files = (char **) JLI_MemAlloc(capacity * sizeof(fl->files[0])); fl->size = 0; return fl; }
static WildcardIterator WildcardIterator_for(const char *wildcard) { WildcardIterator it = NEW_(WildcardIterator); HANDLE handle = FindFirstFile(wildcard, &find_data); if (handle == INVALID_HANDLE_VALUE) return NULL; it->handle = handle; it->firstFile = find_data.cFileName; return it; }
static WildcardIterator WildcardIterator_for(const char *wildcard) { DIR *dir; int wildlen = JLI_StrLen(wildcard); if (wildlen < 2) { dir = opendir("."); } else { char *dirname = JLI_StringDup(wildcard); dirname[wildlen - 1] = '\0'; dir = opendir(dirname); JLI_MemFree(dirname); } if (dir == NULL) return NULL; else { WildcardIterator it = NEW_(WildcardIterator); it->dir = dir; return it; } }