diff --git a/loader/win32.c b/loader/win32.c index 2ee9f1ea7e..3aded84674 100644 --- a/loader/win32.c +++ b/loader/win32.c @@ -63,6 +63,8 @@ for DLL to know too much about its environment. #include #include #include +#include +#include #ifdef HAVE_KSTAT #include #endif @@ -3519,7 +3521,7 @@ static HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2, free(tmp); return result; } - if (strstr(cs1, "vp3")) + if (strstr(cs1, "vp3") || strstr(cs1, ".fpf")) { int r; int flg = 0; @@ -3537,10 +3539,10 @@ static HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2, flg |= O_RDONLY; else if (GENERIC_WRITE & i1) { - flg |= O_WRONLY; + flg |= O_WRONLY | O_CREAT; printf("Warning: openning filename %s %d (flags; 0x%x) for write\n", tmp, r, flg); } - r=open(tmp, flg); + r=open(tmp, flg, S_IRWXU); free(tmp); return r; }