summaryrefslogtreecommitdiffstats
path: root/OptionItem.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-12-04 14:44:57 +0100
committerBenBE <BenBE@geshi.org>2020-12-08 20:58:40 +0100
commit157086e750187f6bceeea697d10bf58403c7d5de (patch)
tree82c6512c1a1e88c9ab9f77ca9bf1531da265e331 /OptionItem.c
parent5506925b346b09f8556ce2c8f83fe3d69dc1c03c (diff)
Split RichString_(append|appendn|write) into wide and ascii
RichString_writeFrom takes a top spot during performance analysis due to the calls to mbstowcs() and iswprint(). Most of the time we know in advance that we are only going to print regular ASCII characters.
Diffstat (limited to 'OptionItem.c')
-rw-r--r--OptionItem.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/OptionItem.c b/OptionItem.c
index 00001fce..688fab8f 100644
--- a/OptionItem.c
+++ b/OptionItem.c
@@ -29,14 +29,14 @@ static void CheckItem_display(const Object* cast, RichString* out) {
const CheckItem* this = (const CheckItem*)cast;
assert (this != NULL);
- RichString_write(out, CRT_colors[CHECK_BOX], "[");
+ RichString_writeAscii(out, CRT_colors[CHECK_BOX], "[");
if (CheckItem_get(this)) {
- RichString_append(out, CRT_colors[CHECK_MARK], "x");
+ RichString_appendAscii(out, CRT_colors[CHECK_MARK], "x");
} else {
- RichString_append(out, CRT_colors[CHECK_MARK], " ");
+ RichString_appendAscii(out, CRT_colors[CHECK_MARK], " ");
}
- RichString_append(out, CRT_colors[CHECK_BOX], "] ");
- RichString_append(out, CRT_colors[CHECK_TEXT], this->super.text);
+ RichString_appendAscii(out, CRT_colors[CHECK_BOX], "] ");
+ RichString_appendWide(out, CRT_colors[CHECK_TEXT], this->super.text);
}
static void NumberItem_display(const Object* cast, RichString* out) {
@@ -44,7 +44,7 @@ static void NumberItem_display(const Object* cast, RichString* out) {
assert (this != NULL);
char buffer[12];
- RichString_write(out, CRT_colors[CHECK_BOX], "[");
+ RichString_writeAscii(out, CRT_colors[CHECK_BOX], "[");
int written;
if (this->scale < 0) {
written = xSnprintf(buffer, sizeof(buffer), "%.*f", -this->scale, pow(10, this->scale) * NumberItem_get(this));
@@ -53,12 +53,12 @@ static void NumberItem_display(const Object* cast, RichString* out) {
} else {
written = xSnprintf(buffer, sizeof(buffer), "%d", NumberItem_get(this));
}
- RichString_append(out, CRT_colors[CHECK_MARK], buffer);
- RichString_append(out, CRT_colors[CHECK_BOX], "]");
+ RichString_appendAscii(out, CRT_colors[CHECK_MARK], buffer);
+ RichString_appendAscii(out, CRT_colors[CHECK_BOX], "]");
for (int i = written; i < 5; i++) {
- RichString_append(out, CRT_colors[CHECK_BOX], " ");
+ RichString_appendAscii(out, CRT_colors[CHECK_BOX], " ");
}
- RichString_append(out, CRT_colors[CHECK_TEXT], this->super.text);
+ RichString_appendWide(out, CRT_colors[CHECK_TEXT], this->super.text);
}
const OptionItemClass OptionItem_class = {

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