summaryrefslogtreecommitdiff
path: root/src/display.c
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2022-12-15 18:06:59 +0100
committerAlbert Cervin <albert@acervin.com>2022-12-15 18:06:59 +0100
commitd931b14863838a8dceed8cd95c71a75a271cca6b (patch)
tree64e1afa0b4849628f47f29d5cdb192fd0db63240 /src/display.c
parenta73225c9b45e110d315a3fc587a82040ce8c9a13 (diff)
downloaddged-d931b14863838a8dceed8cd95c71a75a271cca6b.tar.gz
dged-d931b14863838a8dceed8cd95c71a75a271cca6b.tar.xz
dged-d931b14863838a8dceed8cd95c71a75a271cca6b.zip
Make minibuffer use an actual buffer
Also fix some issues with inserting multibyte chars.
Diffstat (limited to 'src/display.c')
-rw-r--r--src/display.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/display.c b/src/display.c
index 7f35907..b382ea1 100644
--- a/src/display.c
+++ b/src/display.c
@@ -87,12 +87,14 @@ void delete_to_eol() {
void display_update(struct display *display, struct render_cmd_buf *cmd_bufs,
uint32_t ncmd_bufs, uint32_t currow, uint32_t curcol) {
for (uint32_t bufi = 0; bufi < ncmd_bufs; ++bufi) {
- uint64_t ncmds = cmd_bufs[bufi].ncmds;
- struct render_cmd *cmds = cmd_bufs[bufi].cmds;
+ struct render_cmd_buf *buf = &cmd_bufs[bufi];
+ uint64_t ncmds = buf->ncmds;
+ struct render_cmd *cmds = buf->cmds;
for (uint64_t cmdi = 0; cmdi < ncmds; ++cmdi) {
struct render_cmd *cmd = &cmds[cmdi];
- display_move_cursor(display, cmd->row, cmd->col);
+ display_move_cursor(display, cmd->row + buf->yoffset,
+ cmd->col + buf->xoffset);
putbytes(cmd->data, cmd->len);
delete_to_eol();
}