From fe13d2fa6fe007bf3d1213c5ebb56f5bb6191363 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 26 Apr 2002 06:40:46 +0000 Subject: [PATCH] Another attempt at fixing the fdopen mode conversion in fnopen(). --- src/sbbs3/nopen.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/sbbs3/nopen.c b/src/sbbs3/nopen.c index 6bcfecbcd5..a570b23675 100644 --- a/src/sbbs3/nopen.c +++ b/src/sbbs3/nopen.c @@ -69,11 +69,12 @@ FILE* DLLCALL fnopen(int *fd, char *str, int access) char mode[128]; int file; FILE * stream; - +#if 0 if(access&O_CREAT && access&O_WRONLY) { /* not compatible with fdopen */ access&=~O_WRONLY; access|=O_RDWR; } +#endif if((file=nopen(str,access))==-1) return(NULL); @@ -81,17 +82,17 @@ FILE* DLLCALL fnopen(int *fd, char *str, int access) *fd=file; if(access&O_APPEND) { - if(access&O_RDONLY) + if(access&O_RDWR) strcpy(mode,"a+"); else strcpy(mode,"a"); - } else if(access&O_CREAT) { - if(access&O_TRUNC) - strcpy(mode,"w"); - else + } else if(access&O_TRUNC) { + if(access&O_RDWR) strcpy(mode,"w+"); + else + strcpy(mode,"w"); } else { - if(access&O_WRONLY || (access&O_RDWR)==O_RDWR) + if(access&(O_RDWR|O_WRONLY)) strcpy(mode,"r+"); else strcpy(mode,"r"); -- GitLab