summaryrefslogtreecommitdiff
path: root/src/render.c
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik.ramaekers@protonmail.com>2020-02-11 15:02:55 +0100
committerAldrik Ramaekers <aldrik.ramaekers@protonmail.com>2020-02-11 15:02:55 +0100
commitdd286e9f696ebd631af45bca82ca458aafd21728 (patch)
tree18b8a8a101bce4864f2ef0f84d46881c11d1dd36 /src/render.c
parent807d87681c5eca52fee692321ae0279324204cc6 (diff)
platform work
Diffstat (limited to 'src/render.c')
-rw-r--r--src/render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/render.c b/src/render.c
index 4d5c355..11583b1 100644
--- a/src/render.c
+++ b/src/render.c
@@ -69,10 +69,14 @@ s32 render_text_ellipsed(font *font, s32 x, s32 y, s32 maxw, char *text, color t
char *ellipse = "...";
bool in_ellipse = false;
+ s32 len = utf8len(text);
+
s32 x_ = x;
utf8_int32_t ch;
+ s32 count = 0;
while((text = utf8codepoint(text, &ch)) && ch)
{
+ count++;
if (ch == 9) ch = 32;
utf8_int32_t ch_next;
utf8codepoint(text, &ch_next);
@@ -80,6 +84,7 @@ s32 render_text_ellipsed(font *font, s32 x, s32 y, s32 maxw, char *text, color t
{
ch = 0x3f;
}
+ if (ch == '\n') ch = 0xB6;
glyph g = font->glyphs[ch];
@@ -102,7 +107,7 @@ s32 render_text_ellipsed(font *font, s32 x, s32 y, s32 maxw, char *text, color t
//kern = stbtt_GetCodepointKernAdvance(&font->info, ch, ch_next);
x_ += (g.advance);
- if (!in_ellipse && (x_-x) > maxw-(font->glyphs['.'].width*3))
+ if (!in_ellipse && (x_-x) > maxw-(font->glyphs['.'].width*3) && count < len-3)
{
in_ellipse = true;
text = ellipse;