From 529579c28f0fb7abfc5695de3eb7ce21e5bc6980 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 28 Aug 2019 01:37:20 +0000
Subject: [PATCH] Added string utility function: str_has_ctrl() to check if a
 string contains any control (ASCII 0x01 - 0x1F) characters.

---
 src/sbbs3/sbbs.h     | 1 +
 src/sbbs3/str_util.c | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 59cd82edb2..77bc85cb8a 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -1166,6 +1166,7 @@ extern "C" {
 	DLLEXPORT char *	ultoac(ulong l,char *str);
 	DLLEXPORT char *	rot13(char* str);
 	DLLEXPORT uint32_t	str_to_bits(uint32_t currval, const char *str);
+	DLLEXPORT BOOL		str_has_ctrl(const char*);
 	DLLEXPORT BOOL		str_is_ascii(const char*);
 	DLLEXPORT char *	utf8_to_cp437_str(char* str);
 
diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c
index 19a31542d4..7ca637b7aa 100644
--- a/src/sbbs3/str_util.c
+++ b/src/sbbs3/str_util.c
@@ -604,6 +604,15 @@ BOOL str_is_ascii(const char* str)
 	return TRUE;
 }
 
+BOOL str_has_ctrl(const char* str)
+{
+	for(const char* p = str; *p != 0; p++) {
+		if((uchar)*p < ' ')
+			return TRUE;
+	}
+	return FALSE;
+}
+
 /****************************************************************************/
 /* Convert string from IBM extended ASCII to just ASCII						*/
 /****************************************************************************/
-- 
GitLab