From 69f439eff387a6ecb52734e400b297a3c85f2285 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Tue, 21 Sep 2021 08:35:19 +0200 Subject: New upstream version 3.1.0 --- RichString.h | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'RichString.h') diff --git a/RichString.h b/RichString.h index 4145b0d..5c456d2 100644 --- a/RichString.h +++ b/RichString.h @@ -15,20 +15,25 @@ 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); RichString_beginAllocated(this) -#define RichString_beginAllocated(this) do { memset(&(this), 0, sizeof(RichString)); (this).chptr = (this).chstr; } while(0) -#define RichString_end(this) RichString_prune(&(this)) +#define RichString_begin(this) RichString this; RichString_beginAllocated(this) +#define RichString_beginAllocated(this) \ + do { \ + (this).chlen = 0, \ + (this).chptr = (this).chstr; \ + RichString_setChar(&(this), 0, 0); \ + (this).highlightAttr = 0; \ + } while(0) #ifdef HAVE_LIBNCURSESW #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_getCharVal(this, i) ((this).chptr[i].chars[0]) #define RichString_setChar(this, at, ch) do { (this)->chptr[(at)] = (CharType) { .chars = { ch, 0 } }; } while (0) #define CharType cchar_t #else #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_getCharVal(this, i) ((this).chptr[i] & 0xff) #define RichString_setChar(this, at, ch) do { (this)->chptr[(at)] = ch; } while (0) #define CharType chtype #endif @@ -42,20 +47,27 @@ typedef struct RichString_ { int highlightAttr; } RichString; -void RichString_setAttrn(RichString* this, int attrs, int start, int charcount); +void RichString_delete(RichString* this); + +void RichString_rewind(RichString* this, int count); -int RichString_findChar(RichString* this, char c, int start); +void RichString_setAttrn(RichString* this, int attrs, int start, int charcount); -void RichString_prune(RichString* this); +int RichString_findChar(const RichString* this, char c, int start); void RichString_setAttr(RichString* this, int attrs); -void RichString_appendChr(RichString* this, char c, int count); +void RichString_appendChr(RichString* this, int attrs, char c, int count); + +/* All appending and writing functions return the number of written characters (not columns). */ int RichString_appendWide(RichString* this, int attrs, const char* data); int RichString_appendnWide(RichString* this, int attrs, const char* data, int len); +/* columns takes the maximum number of columns to write and contains on return the number of columns written. */ +int RichString_appendnWideColumns(RichString* this, int attrs, const char* data, int len, int* columns); + int RichString_writeWide(RichString* this, int attrs, const char* data); int RichString_appendAscii(RichString* this, int attrs, const char* data); -- cgit v1.2.3