From de8a8bbd7f8f0d70b4ec730f8ee1b75aa61a1cb1 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 7 Oct 2003 02:14:11 +0000
Subject: [PATCH] fcopy() now fails if an fputc() call fails (no diskspace?),
 which causes backup to stop the backup process if any single-file backup
 fails.

---
 src/sbbs3/scfgsave.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c
index 76f972b223..2c6ea654d5 100644
--- a/src/sbbs3/scfgsave.c
+++ b/src/sbbs3/scfgsave.c
@@ -84,6 +84,7 @@ BOOL DLLCALL fcopy(char* src, char* dest)
 	ulong	count=0;
 	FILE*	in;
 	FILE*	out;
+	BOOL	success=TRUE;
 
 	if((in=fopen(src,"rb"))==NULL)
 		return(FALSE);
@@ -93,10 +94,12 @@ BOOL DLLCALL fcopy(char* src, char* dest)
 	}
 
 	while(!feof(in)) {
-		ch=fgetc(in);
-		if(ch==EOF)
+		if((ch=fgetc(in))==EOF)
 			break;
-		fputc(ch,out);
+		if(fputc(ch,out)==EOF) {
+			success=FALSE;
+			break;
+		}
 		if(((count++)%(32*1024))==0)
 			YIELD();
 	}
@@ -104,7 +107,7 @@ BOOL DLLCALL fcopy(char* src, char* dest)
 	fclose(in);
 	fclose(out);
 
-	return(TRUE);
+	return(success);
 }
 
 /****************************************************************************/
-- 
GitLab