blob: 724b9607657d255b3bd6de6a784e8324f7c68e0e [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#include <sys/stat.h>
#include <windows.h>
#include "__mingw_fix_stat.h"
int __mingw_fix_fstat_finish(int ret, int fd, unsigned short *mode)
{
/* msvcrt's _fstat fills S_IFREG for directories. Fix it to S_IFDIR. */
BY_HANDLE_FILE_INFORMATION fi;
if (ret == 0 && S_ISREG(*mode) && GetFileInformationByHandle((HANDLE)_get_osfhandle(fd), &fi) && (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
*mode = (*mode & ~S_IFMT) | S_IFDIR;
return ret;
}