summaryrefslogtreecommitdiff
path: root/vui.c
diff options
context:
space:
mode:
authorWormHeamer2025-12-31 03:20:25 -0500
committerWormHeamer2025-12-31 03:20:25 -0500
commit79f562d94a908d3ebfc9ac68a577dbc70f12c450 (patch)
treefb37f0650dbb0041f273fe7427c6e7181f40d45d /vui.c
parenta06101376e750a7ba57857a6ed6917e9e5503d71 (diff)
allow opening multiple files at once + replace modes
Diffstat (limited to 'vui.c')
-rw-r--r--vui.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/vui.c b/vui.c
index 299b394..f5d6fdd 100644
--- a/vui.c
+++ b/vui.c
@@ -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) {