aboutsummaryrefslogtreecommitdiffstats
path: root/RichString.h
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2016-04-11 13:00:27 +0200
committerDaniel Lange <DLange@git.local>2016-04-11 13:00:27 +0200
commit283707c5e5bc436b78ea23bf5500cb6b16a01148 (patch)
treeb977131bbbb4c3bd8ade370aab2e4fc913440c04 /RichString.h
parentbea9b4798717b6f4e31085506dfc179eeb8dc17c (diff)
downloaddebian_htop-283707c5e5bc436b78ea23bf5500cb6b16a01148.tar.gz
debian_htop-283707c5e5bc436b78ea23bf5500cb6b16a01148.tar.bz2
debian_htop-283707c5e5bc436b78ea23bf5500cb6b16a01148.zip
Imported Upstream version 0.9upstream/0.9
Diffstat (limited to 'RichString.h')
-rw-r--r--RichString.h55
1 files changed, 30 insertions, 25 deletions
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

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