summaryrefslogtreecommitdiffstats
path: root/RichString.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-08-20 00:31:48 -0300
committerHisham Muhammad <hisham@gobolinux.org>2015-08-20 00:31:48 -0300
commit8bd603cb68fb5dd768b5b23ffe0c6f09f5340ceb (patch)
treefe5506bbbd80dca2b318e7d89c51218f31d880a4 /RichString.c
parent78be8201dc86c4d57226d845f04ac496cd64d9b6 (diff)
Make Unicode strings safe for ncurses 6 ABI.
Closes #241.
Diffstat (limited to 'RichString.c')
-rw-r--r--RichString.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/RichString.c b/RichString.c
index 22ffecb5..ad90a0ac 100644
--- a/RichString.c
+++ b/RichString.c
@@ -32,8 +32,8 @@ in the source distribution for its full text.
#define RichString_size(this) ((this)->chlen)
#define RichString_sizeVal(this) ((this).chlen)
-#define RichString_begin(this) RichString (this); (this).chlen = 0; (this).chptr = (this).chstr;
-#define RichString_beginAllocated(this) (this).chlen = 0; (this).chptr = (this).chstr;
+#define RichString_begin(this) RichString (this); memset(&this, 0, sizeof(RichString)); (this).chptr = (this).chstr;
+#define RichString_beginAllocated(this) memset(&this, 0, sizeof(RichString)); (this).chptr = (this).chstr;
#define RichString_end(this) RichString_prune(&(this));
#ifdef HAVE_LIBNCURSESW
@@ -79,6 +79,7 @@ static void RichString_extendLen(RichString* this, int len) {
this->chptr = realloc(this->chptr, charBytes(len+1));
}
}
+
RichString_setChar(this, len, 0);
this->chlen = len;
}
@@ -155,9 +156,8 @@ int RichString_findChar(RichString* this, char c, int start) {
void RichString_prune(RichString* this) {
if (this->chlen > RICHSTRING_MAXLEN)
free(this->chptr);
+ memset(this, 0, sizeof(RichString));
this->chptr = this->chstr;
- this->chlen = 0;
- RichString_setChar(this, 0, 0);
}
void RichString_setAttr(RichString* this, int attrs) {

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