string.h
changeset 2775 d3ed38a97250
parent 2436 177cb6a8339f
child 4200 a45420ba0c23
--- a/string.h	Tue Dec 20 00:50:16 2005 +0000
+++ b/string.h	Tue Dec 20 20:52:05 2005 +0000
@@ -25,4 +25,20 @@
 
 char* CDECL str_fmt(const char* str, ...);
 
+/** Scans the string for valid characters and if it finds invalid ones,
+ * replaces them with a question mark '?' */
+void str_validate(char *str);
+
+/** Only allow valid ascii-function codes. Filter special codes like BELL and
+ * so on [we need a special filter here later]
+ * @param key character to be checked
+ * @return true or false depending if the character is printable/valid or not */
+static inline bool IsValidAsciiChar(byte key)
+{
+	// XXX This filter stops certain crashes, but may be too restrictive.
+	return (key >= ' ' && key < 127) || (key >= 160 &&
+		key != 0xAA && key != 0xAC && key != 0xAD && key != 0xAF &&
+		key != 0xB5 && key != 0xB6 && key != 0xB7 && key != 0xB9);
+}
+
 #endif /* STRING_H */