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