From ecd9174e2f13ad4faedbe332660ad523d3f670ba Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sun, 3 Jul 2005 08:24:57 +0000
Subject: [PATCH] For log output, display control chars in ^X format. Ths
 should fix the mystery termination bug when ran from xterm.

---
 src/sbbs3/sbbscon.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c
index 074e82f828..29593830d6 100644
--- a/src/sbbs3/sbbscon.c
+++ b/src/sbbs3/sbbscon.c
@@ -199,6 +199,7 @@ static int lputs(int level, char *str)
 {
 	static pthread_mutex_t mutex;
 	static BOOL mutex_initialized;
+	char	*p;
 
 #ifdef __unix__
 
@@ -219,8 +220,15 @@ static int lputs(int level, char *str)
 	pthread_mutex_lock(&mutex);
 	/* erase prompt */
 	printf("\r%*s\r",prompt_len,"");
-	if(str!=NULL)
-		printf("%s\n",str);
+	if(str!=NULL) {
+		for(p=str; *p; p++) {
+			if(iscntrl(*p))
+				printf("^%c",'@'+*p);
+			else
+				printf("%c",*p);
+		}
+		puts("");
+	}
 	/* re-display prompt with current stats */
 	if(prompt!=NULL)
 		prompt_len = printf(prompt, thread_count, socket_count, client_count, served);
-- 
GitLab