diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2015-08-20 00:31:48 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2015-08-20 00:31:48 -0300 |
commit | 8bd603cb68fb5dd768b5b23ffe0c6f09f5340ceb (patch) | |
tree | fe5506bbbd80dca2b318e7d89c51218f31d880a4 /RichString.c | |
parent | 78be8201dc86c4d57226d845f04ac496cd64d9b6 (diff) |
Make Unicode strings safe for ncurses 6 ABI.
Closes #241.
Diffstat (limited to 'RichString.c')
-rw-r--r-- | RichString.c | 8 |
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) { |