From e421382b1b2deb8bf743ff5e44e54cc8f16fe633 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 14 Jun 2003 10:05:13 +0000
Subject: [PATCH] strip_ctrl() only overwrites string if it was modified.

---
 src/sbbs3/str_util.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c
index b6e0b8adcf..8b0ac06d71 100644
--- a/src/sbbs3/str_util.c
+++ b/src/sbbs3/str_util.c
@@ -64,13 +64,16 @@ char* DLLCALL strip_ctrl(char *str)
 	char tmp[1024];
 	int i,j;
 
-	for(i=j=0;str[i] && j<(int)sizeof(tmp)-1;i++)
+	for(i=j=0;str[i] && j<(int)sizeof(tmp)-1;i++) {
 		if(str[i]==CTRL_A && str[i+1]!=0)
 			i++;
 		else if((uchar)str[i]>=SP)
 			tmp[j++]=str[i];
-	tmp[j]=0;
-	strcpy(str,tmp);
+	}
+	if(i!=j) {
+		tmp[j]=0;
+		strcpy(str,tmp);
+	}
 	return(str);
 }
 
-- 
GitLab