fix for win95
This commit is contained in:
parent
1baa36725d
commit
cda34dfbaa
2 changed files with 13 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -2,3 +2,4 @@
|
||||||
*.o
|
*.o
|
||||||
/build
|
/build
|
||||||
*.make
|
*.make
|
||||||
|
*.lib
|
||||||
|
|
|
||||||
|
|
@ -3,28 +3,34 @@
|
||||||
|
|
||||||
int ppr_stat(const char* path, struct ppr_stat* s) {
|
int ppr_stat(const char* path, struct ppr_stat* s) {
|
||||||
#if defined(PPR_IS_WIN32)
|
#if defined(PPR_IS_WIN32)
|
||||||
WIN32_FILE_ATTRIBUTE_DATA fad;
|
DWORD attr;
|
||||||
ULARGE_INTEGER mtime;
|
ULARGE_INTEGER mtime;
|
||||||
|
PPR_FILE* f;
|
||||||
|
FILETIME ft;
|
||||||
|
|
||||||
if(!GetFileAttributesEx(path, GetFileExInfoStandard, &fad)) return -1;
|
if((attr = GetFileAttributes(path)) == INVALID_FILE_ATTRIBUTES) return -1;
|
||||||
|
|
||||||
memcpy(&mtime, &fad.ftLastWriteTime, sizeof(mtime));
|
f = ppr_fopen(path, "r"); /* :))))))) */
|
||||||
|
|
||||||
|
GetFileTime((HANDLE)f, NULL, NULL, &ft);
|
||||||
|
|
||||||
|
memcpy(&mtime, &ft, sizeof(mtime));
|
||||||
|
|
||||||
s->st_size = 0;
|
s->st_size = 0;
|
||||||
s->st_modtime = (mtime.QuadPart / 10000000) / 11644473600;
|
s->st_modtime = (mtime.QuadPart / 10000000) / 11644473600;
|
||||||
s->st_mode = 0;
|
s->st_mode = 0;
|
||||||
|
|
||||||
s->st_mode |= PPR_S_IFREG;
|
s->st_mode |= PPR_S_IFREG;
|
||||||
if(fad.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
|
if(attr & FILE_ATTRIBUTE_DIRECTORY) {
|
||||||
s->st_mode &= ~PPR_S_IFREG;
|
s->st_mode &= ~PPR_S_IFREG;
|
||||||
s->st_mode |= PPR_S_IFDIR;
|
s->st_mode |= PPR_S_IFDIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(PPR_S_ISREG(s->st_mode)) {
|
if(PPR_S_ISREG(s->st_mode)) {
|
||||||
PPR_FILE* f = ppr_fopen(path, "r"); /* :))))))) */
|
|
||||||
s->st_size = GetFileSize((HANDLE)f, NULL);
|
s->st_size = GetFileSize((HANDLE)f, NULL);
|
||||||
ppr_fclose(f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ppr_fclose(f);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
#elif defined(PPR_IS_UNIX) || defined(PPR_IS_NETWARE)
|
#elif defined(PPR_IS_UNIX) || defined(PPR_IS_NETWARE)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue