diff --git a/src/sbbs3/nopen.c b/src/sbbs3/nopen.c index 0a04b854e322109802ba0b79c5d1e55350aa3012..0701fad391ea2334219c327420f7aab2ccd499c4 100644 --- a/src/sbbs3/nopen.c +++ b/src/sbbs3/nopen.c @@ -50,10 +50,13 @@ int nopen(const char* str, int access) if(access&O_DENYNONE) { share=SH_DENYNO; access&=~O_DENYNONE; } - else if(access==O_RDONLY) share=SH_DENYWR; + else if((access&~O_BINARY)==O_RDONLY) share=SH_DENYWR; else share=SH_DENYRW; + +#if !defined(__unix__) /* Basically, a no-op on Unix anyway */ if(!(access&O_TEXT)) access|=O_BINARY; +#endif while(((file=sopen(str,access,share,S_IREAD|S_IWRITE))==-1) && (errno==EACCES || errno==EAGAIN || errno==EDEADLOCK) && count++<LOOP_NOPEN) if(count)