#include "locale.h" #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef PLATFORM_WINDOWS #include "windows.h" #endif int errno; #define MAXENV 32 static char *envnames[MAXENV]; static char *envvars[MAXENV]; static void cleanup_libc(void) #ifndef _MSC_VER __attribute__((destructor)) #endif ; static void cleanup_libc(void) { int i; for (i=0; i dwFileAttributes = wFindFileData.dwFileAttributes; pFindFileData->ftCreationTime = wFindFileData.ftCreationTime; pFindFileData->ftLastAccessTime = wFindFileData.ftLastAccessTime; pFindFileData->ftLastWriteTime = wFindFileData.ftLastWriteTime; pFindFileData->nFileSizeHigh = wFindFileData.nFileSizeHigh; pFindFileData->nFileSizeLow = wFindFileData.nFileSizeLow; if (WideCharToMultiByte(CP_UTF8, WC_SEPCHARS, wFileName, -1, pFindFileData->cFileName, MAX_PATH, NULL, NULL) == 0) { hRetVal = INVALID_HANDLE_VALUE; } } return hRetVal; } BOOL FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA pFindFileData) { BOOL boRetVal = FALSE; WIN32_FIND_DATAW wFindFileData; wFindFileData.dwFileAttributes = pFindFileData->dwFileAttributes; wFindFileData.ftCreationTime = pFindFileData->ftCreationTime; wFindFileData.ftLastAccessTime = pFindFileData->ftLastAccessTime; wFindFileData.ftLastWriteTime = pFindFileData->ftLastWriteTime; wFindFileData.nFileSizeHigh = pFindFileData->nFileSizeHigh; wFindFileData.nFileSizeLow = pFindFileData->nFileSizeLow; if (MultiByteToWideChar(CP_UTF8, MB_PRECOMPOSED, pFindFileData->cFileName, -1, wFindFileData.cFileName, MAX_PATH) != 0) { boRetVal = FindNextFileW(hFindFile, &wFindFileData); pFindFileData->dwFileAttributes = wFindFileData.dwFileAttributes; pFindFileData->ftCreationTime = wFindFileData.ftCreationTime; pFindFileData->ftLastAccessTime = wFindFileData.ftLastAccessTime; pFindFileData->ftLastWriteTime = wFindFileData.ftLastWriteTime; pFindFileData->nFileSizeHigh = wFindFileData.nFileSizeHigh; pFindFileData->nFileSizeLow = wFindFileData.nFileSizeLow; if (WideCharToMultiByte(CP_UTF8, WC_SEPCHARS, wFindFileData.cFileName, -1, pFindFileData->cFileName, MAX_PATH, NULL, NULL) == 0) { boRetVal = FALSE; } } return boRetVal; } #endif #endif