summaryrefslogtreecommitdiffstats
path: root/RichString.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2009-03-11 13:51:50 +0000
committerHisham Muhammad <hisham@gobolinux.org>2009-03-11 13:51:50 +0000
commit31b3a2d2db158dd98da8f02e05ea348c4b564f0c (patch)
tree885edf8d320aa10d819a584e8073cc5c207c8e28 /RichString.c
parent385a7dbe1ec8b8a64d8999019028cce71565c4dc (diff)
catch nonprintable characters
Diffstat (limited to 'RichString.c')
-rw-r--r--RichString.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/RichString.c b/RichString.c
index c397f3f1..fbcb17f1 100644
--- a/RichString.c
+++ b/RichString.c
@@ -9,6 +9,7 @@
#include <stdlib.h>
#include <string.h>
#include <curses.h>
+#include <ctype.h>
#include "debug.h"
#include <assert.h>
@@ -89,7 +90,8 @@ int RichString_findChar(RichString *this, char c, int start) {
inline void RichString_appendn(RichString* this, int attrs, char* data_c, int len) {
int last = MIN(RICHSTRING_MAXLEN - 1, len + this->len);
for (int i = this->len, j = 0; i < last; i++, j++)
- this->chstr[i] = data_c[j] | attrs;
+ this->chstr[i] = (isprint(data_c[j]) ? data_c[j] : '?') | attrs;
+
this->chstr[last] = 0;
this->len = last;
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy