From d8e23bb0847d766d7f3fdf8bdd11f7d70829fad8 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 17 Jul 2015 14:33:34 +0200 Subject: [PATCH] remove UTF-8 code when compiling with --disable-unicode --- CRT.c | 14 +++++++++++--- CRT.h | 8 ++++++-- ListItem.c | 6 +++++- Meter.c | 26 +++++++++++++++++++++----- Meter.h | 8 ++++++++ 5 files changed, 51 insertions(+), 11 deletions(-) diff --git a/CRT.c b/CRT.c index b44a86b6..3c0829a1 100644 --- a/CRT.c +++ b/CRT.c @@ -133,6 +133,8 @@ const char *CRT_treeStrAscii[TREE_STR_COUNT] = { "-", // TREE_STR_SHUT }; +#ifdef HAVE_LIBNCURSESW + const char *CRT_treeStrUtf8[TREE_STR_COUNT] = { "\xe2\x94\x80", // TREE_STR_HORZ ─ "\xe2\x94\x82", // TREE_STR_VERT │ @@ -143,14 +145,16 @@ const char *CRT_treeStrUtf8[TREE_STR_COUNT] = { "\xe2\x94\x80", // TREE_STR_SHUT ─ }; +bool CRT_utf8 = false; + +#endif + const char **CRT_treeStr = CRT_treeStrAscii; static bool CRT_hasColors; int CRT_delay = 0; -bool CRT_utf8 = false; - int* CRT_colors; int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = { @@ -596,7 +600,11 @@ void CRT_init(int delay, int colorScheme) { CRT_utf8 = false; #endif - CRT_treeStr = CRT_utf8 ? CRT_treeStrUtf8 : CRT_treeStrAscii; + CRT_treeStr = +#ifdef HAVE_LIBNCURSESW + CRT_utf8 ? CRT_treeStrUtf8 : +#endif + CRT_treeStrAscii; mousemask(BUTTON1_CLICKED, NULL); } diff --git a/CRT.h b/CRT.h index 3e8babe7..074cff36 100644 --- a/CRT.h +++ b/CRT.h @@ -114,14 +114,18 @@ void CRT_handleSIGSEGV(int sgn); extern const char *CRT_treeStrAscii[TREE_STR_COUNT]; +#ifdef HAVE_LIBNCURSESW + extern const char *CRT_treeStrUtf8[TREE_STR_COUNT]; +extern bool CRT_utf8; + +#endif + extern const char **CRT_treeStr; extern int CRT_delay; -extern bool CRT_utf8; - int* CRT_colors; extern int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT]; diff --git a/ListItem.c b/ListItem.c index 68fd9ffe..07788e73 100644 --- a/ListItem.c +++ b/ListItem.c @@ -42,7 +42,11 @@ static void ListItem_display(Object* cast, RichString* out) { snprintf(buffer, len, "%s", this->value); */ if (this->moving) { - RichString_write(out, CRT_colors[DEFAULT_COLOR], CRT_utf8 ? "↕ " : "+ "); + RichString_write(out, CRT_colors[DEFAULT_COLOR], +#ifdef HAVE_LIBNCURSESW + CRT_utf8 ? "↕ " : +#endif + "+ "); } else { RichString_prune(out); } diff --git a/Meter.c b/Meter.c index af863ae5..f7ad61aa 100644 --- a/Meter.c +++ b/Meter.c @@ -308,6 +308,8 @@ static void BarMeterMode_draw(Meter* this, int x, int y, int w) { /* ---------- GraphMeterMode ---------- */ +#ifdef HAVE_LIBNCURSESW + #define PIXPERROW_UTF8 4 static const char* GraphMeterMode_dotsUtf8[] = { /*00*/"⠀", /*01*/"⢀", /*02*/"⢠", /*03*/"⢰", /*04*/ "⢸", @@ -317,6 +319,8 @@ static const char* GraphMeterMode_dotsUtf8[] = { /*40*/"⡇", /*41*/"⣇", /*42*/"⣧", /*43*/"⣷", /*44*/ "⣿" }; +#endif + #define PIXPERROW_ASCII 2 static const char* GraphMeterMode_dotsAscii[] = { /*00*/" ", /*01*/".", /*02*/":", @@ -333,10 +337,13 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) { GraphData* data = (GraphData*) this->drawData; const int nValues = METER_BUFFER_LEN; +#ifdef HAVE_LIBNCURSESW if (CRT_utf8) { GraphMeterMode_dots = GraphMeterMode_dotsUtf8; pixperrow = PIXPERROW_UTF8; - } else { + } else +#endif + { GraphMeterMode_dots = GraphMeterMode_dotsAscii; pixperrow = PIXPERROW_ASCII; } @@ -399,12 +406,16 @@ static const char* LEDMeterMode_digitsAscii[] = { "|__|"," |","|__ "," __|"," |"," __|","|__|"," |","|__|"," __|" }; +#ifdef HAVE_LIBNCURSESW + static const char* LEDMeterMode_digitsUtf8[] = { "┌──┐"," ┐ ","╶──┐","╶──┐","╷ ╷","┌──╴","┌──╴","╶──┐","┌──┐","┌──┐", "│ │"," │ ","┌──┘"," ──┤","└──┤","└──┐","├──┐"," │","├──┤","└──┤", "└──┘"," ╵ ","└──╴","╶──┘"," ╵","╶──┘","└──┘"," ╵","└──┘"," ──┘" }; +#endif + static const char** LEDMeterMode_digits; static void LEDMeterMode_drawDigit(int x, int y, int n) { @@ -415,11 +426,12 @@ static void LEDMeterMode_drawDigit(int x, int y, int n) { static void LEDMeterMode_draw(Meter* this, int x, int y, int w) { (void) w; - if (CRT_utf8) { +#ifdef HAVE_LIBNCURSESW + if (CRT_utf8) LEDMeterMode_digits = LEDMeterMode_digitsUtf8; - } else { + else +#endif LEDMeterMode_digits = LEDMeterMode_digitsAscii; - } char buffer[METER_BUFFER_LEN]; Meter_setValues(this, buffer, METER_BUFFER_LEN - 1); @@ -427,7 +439,11 @@ static void LEDMeterMode_draw(Meter* this, int x, int y, int w) { RichString_begin(out); Meter_displayBuffer(this, buffer, &out); - int yText = CRT_utf8 ? y+1 : y+2; + int yText = +#ifdef HAVE_LIBNCURSESW + CRT_utf8 ? y+1 : +#endif + y+2; attrset(CRT_colors[LED_COLOR]); mvaddstr(yText, x, this->caption); int xx = x + strlen(this->caption); diff --git a/Meter.h b/Meter.h index 63e32955..6b268c3f 100644 --- a/Meter.h +++ b/Meter.h @@ -119,11 +119,19 @@ ListItem* Meter_toListItem(Meter* this, bool moving); /* ---------- GraphMeterMode ---------- */ +#ifdef HAVE_LIBNCURSESW + #define PIXPERROW_UTF8 4 +#endif + #define PIXPERROW_ASCII 2 /* ---------- LEDMeterMode ---------- */ +#ifdef HAVE_LIBNCURSESW + +#endif + extern MeterMode* Meter_modes[]; /* Blank meter */