[lonetix/fs] Some fixes to Windows system specific API - implementation still partial

This commit is contained in:
Lorenzo Cogotti 2021-10-15 11:54:23 +02:00
parent 07ffdf5a73
commit a004e014e1
1 changed files with 5 additions and 4 deletions

View File

@ -30,7 +30,7 @@ static THREAD_LOCAL Pathbuf pathbuf;
static wchar_t *Sys_Utf8PathToW(const char *path)
{
int n = MultiByteToWideChar(CP_UTF8, 0, dir, -1, pathbuf.wstr, ARRAY_SIZE(pathbuf.wstr));
int n = MultiByteToWideChar(CP_UTF8, 0, path, -1, pathbuf.wstr, ARRAY_SIZE(pathbuf.wstr));
if (n < 0) {
Sys_SetErrStat(GetLastError(), "MultiByteToWideChar() failed");
return NULL;
@ -65,7 +65,7 @@ void Sys_Fclose(Fildes fd)
CloseHandle(fd);
}
typedef struct FileList dfFileList;
typedef struct FileList FileList;
struct FileList {
FileList *next;
unsigned len;
@ -127,14 +127,15 @@ char **Sys_ListFiles(const char *dir, unsigned *nfiles, const char *pat)
Sys_SetErrStat(errno, "_wfindfirst()/_wfindnext()");
goto fail;
}
_findclose(findhn);
char **files = (char **) malloc(sizeof(*files) * (count + 1) + nchars);
if (!files) {
Sys_OutOfMemory();
return NULL;
goto fail;
}
_findclose(findhn); // safe, can't fail anymore
char *namep = (char *) (files + count + 1);
for (unsigned i = 0; i < count; i++) {
files[i] = namep;