diff options
Diffstat (limited to 'vui.c')
| -rw-r--r-- | vui.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -615,26 +615,28 @@ static void truncate_span(int *x, unsigned *nptr) { *nptr = n; } -void vui_putsna(int x, int y, const char *s, unsigned srcn, VuiAttr a) { +u32 vui_putsna(int x, int y, const char *s, unsigned srcn, VuiAttr a) { u32 n = utf8_decode_len(s, srcn); truncate_span(&x, &n); - if (n < 1 || y < 0 || y >= (int)LINES) return; + if (n < 1 || y < 0 || y >= (int)LINES) return 0; VuiChar *dest = &CHR(x, y); utf8_decode(dest, s, n); for (u32 i = 0; i < n; i++) ASSERT(dest[i] > 0 && dest[i] <= KEY_UTF8_MAX); + u32 r = n; for (uint16_t *pa = &ATTR(x, y); n--;) *pa++ = a; + return r; } -void vui_putsn(int x, int y, const char *s, unsigned n) { - vui_putsna(x, y, s, n, ATTR_DEFAULT); +u32 vui_putsn(int x, int y, const char *s, unsigned n) { + return vui_putsna(x, y, s, n, ATTR_DEFAULT); } -void vui_putsa(int x, int y, const char *s, VuiAttr a) { - vui_putsna(x, y, s, strlen(s), a); +u32 vui_putsa(int x, int y, const char *s, VuiAttr a) { + return vui_putsna(x, y, s, strlen(s), a); } -void vui_puts(int x, int y, const char *s) { - vui_putsn(x, y, s, strlen(s)); +u32 vui_puts(int x, int y, const char *s) { + return vui_putsn(x, y, s, strlen(s)); } int vui_avprintf(int x, int y, VuiAttr a, const char *fmt, va_list ap) { |
