diff --git a/RichString.c b/RichString.c index c397f3f1..fbcb17f1 100644 --- a/RichString.c +++ b/RichString.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "debug.h" #include @@ -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; } diff --git a/RichString.h b/RichString.h index 7f777bba..036a24a4 100644 --- a/RichString.h +++ b/RichString.h @@ -12,6 +12,7 @@ #include #include #include +#include #include "debug.h" #include