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
|
||||
/build
|
||||
*.make
|
||||
*.lib
|
||||
|
|
|
|||
|
|
@ -3,28 +3,34 @@
|
|||
|
||||
int ppr_stat(const char* path, struct ppr_stat* s) {
|
||||
#if defined(PPR_IS_WIN32)
|
||||
WIN32_FILE_ATTRIBUTE_DATA fad;
|
||||
DWORD attr;
|
||||
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_modtime = (mtime.QuadPart / 10000000) / 11644473600;
|
||||
s->st_mode = 0;
|
||||
|
||||
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_IFDIR;
|
||||
}
|
||||
|
||||
if(PPR_S_ISREG(s->st_mode)) {
|
||||
PPR_FILE* f = ppr_fopen(path, "r"); /* :))))))) */
|
||||
s->st_size = GetFileSize((HANDLE)f, NULL);
|
||||
ppr_fclose(f);
|
||||
}
|
||||
|
||||
ppr_fclose(f);
|
||||
|
||||
return 0;
|
||||
#elif defined(PPR_IS_UNIX) || defined(PPR_IS_NETWARE)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue