From 283707c5e5bc436b78ea23bf5500cb6b16a01148 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 11 Apr 2016 13:00:27 +0200 Subject: Imported Upstream version 0.9 --- RichString.h | 55 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'RichString.h') diff --git a/RichString.h b/RichString.h index 994f504..b6622a1 100644 --- a/RichString.h +++ b/RichString.h @@ -24,26 +24,31 @@ #define RICHSTRING_MAXLEN 300 -#define RichString_init(this) (this)->len = 0 -#define RichString_initVal(this) (this).len = 0 +#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_end(this) RichString_prune(&(this)); #ifdef HAVE_LIBNCURSESW -#define RichString_printVal(this, y, x) mvadd_wchstr(y, x, this.chstr) -#define RichString_printoffnVal(this, y, x, off, n) mvadd_wchnstr(y, x, this.chstr + off, n) -#define RichString_getCharVal(this, i) (this.chstr[i].chars[0] & 255) +#define RichString_printVal(this, y, x) mvadd_wchstr(y, x, (this).chptr) +#define RichString_printoffnVal(this, y, x, off, n) mvadd_wchnstr(y, x, (this).chptr + off, n) +#define RichString_getCharVal(this, i) ((this).chptr[i].chars[0] & 255) +#define RichString_setChar(this, at, ch) do{ (this)->chptr[(at)].chars[0] = ch; } while(0) +#define CharType cchar_t #else -#define RichString_printVal(this, y, x) mvaddchstr(y, x, this.chstr) -#define RichString_printoffnVal(this, y, x, off, n) mvaddchnstr(y, x, this.chstr + off, n) -#define RichString_getCharVal(this, i) (this.chstr[i]) +#define RichString_printVal(this, y, x) mvaddchstr(y, x, (this).chptr) +#define RichString_printoffnVal(this, y, x, off, n) mvaddchnstr(y, x, (this).chptr + off, n) +#define RichString_getCharVal(this, i) ((this).chptr[i]) +#define RichString_setChar(this, at, ch) do{ (this)->chptr[(at)] = ch; } while(0) +#define CharType chtype #endif typedef struct RichString_ { - int len; -#ifdef HAVE_LIBNCURSESW - cchar_t chstr[RICHSTRING_MAXLEN+1]; -#else - chtype chstr[RICHSTRING_MAXLEN+1]; -#endif + int chlen; + CharType chstr[RICHSTRING_MAXLEN+1]; + CharType* chptr; } RichString; @@ -51,32 +56,32 @@ typedef struct RichString_ { #define MIN(a,b) ((a)<(b)?(a):(b)) #endif +#define charBytes(n) (sizeof(CharType) * (n)) + #ifdef HAVE_LIBNCURSESW -extern void RichString_appendn(RichString* this, int attrs, char* data_c, int len); +extern void RichString_appendn(RichString* this, int attrs, const char* data_c, int len); -extern void RichString_setAttrn(RichString *this, int attrs, int start, int finish); +extern void RichString_setAttrn(RichString* this, int attrs, int start, int finish); -int RichString_findChar(RichString *this, char c, int start); +int RichString_findChar(RichString* this, char c, int start); #else -extern void RichString_appendn(RichString* this, int attrs, char* data_c, int len); +extern void RichString_appendn(RichString* this, int attrs, const char* data_c, int len); -void RichString_setAttrn(RichString *this, int attrs, int start, int finish); +void RichString_setAttrn(RichString* this, int attrs, int start, int finish); -int RichString_findChar(RichString *this, char c, int start); +int RichString_findChar(RichString* this, char c, int start); #endif void RichString_prune(RichString* this); -void RichString_setAttr(RichString *this, int attrs); - -extern void RichString_append(RichString* this, int attrs, char* data); +void RichString_setAttr(RichString* this, int attrs); -void RichString_write(RichString* this, int attrs, char* data); +extern void RichString_append(RichString* this, int attrs, const char* data); -RichString RichString_quickString(int attrs, char* data); +void RichString_write(RichString* this, int attrs, const char* data); #endif -- cgit v1.2.3