Skip to content

Commit

Permalink
remove UTF-8 code when compiling with --disable-unicode
Browse files Browse the repository at this point in the history
  • Loading branch information
eworm-de committed Aug 19, 2015
1 parent 9e67b65 commit d8e23bb
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 11 deletions.
14 changes: 11 additions & 3 deletions CRT.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 │
Expand All @@ -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] = {
Expand Down Expand Up @@ -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);
}
Expand Down
8 changes: 6 additions & 2 deletions CRT.h
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down
6 changes: 5 additions & 1 deletion ListItem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
26 changes: 21 additions & 5 deletions Meter.c
Original file line number Diff line number Diff line change
Expand Up @@ -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*/ "⢸",
Expand All @@ -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*/":",
Expand All @@ -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;
}
Expand Down Expand Up @@ -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) {
Expand All @@ -415,19 +426,24 @@ 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);

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);
Expand Down
8 changes: 8 additions & 0 deletions Meter.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down

0 comments on commit d8e23bb

Please sign in to comment.