wip: vt parsing: break out grid operating functions

This commit is contained in:
Daniel Eklöf 2019-06-17 19:33:10 +02:00
parent 6d5f5b9f7a
commit 4585df532c
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 56 additions and 36 deletions

34
grid.c Normal file
View file

@ -0,0 +1,34 @@
#include "grid.h"
#include <string.h>
void
grid_erase(struct grid *grid, int start, int end)
{
for (int i = start; i < end; i++) {
struct cell *cell = &grid->cells[i];
memset(cell, 0, sizeof(*cell));
cell->attrs.foreground = grid->foreground;
cell->attrs.background = grid->background;
cell->dirty = true;
grid->dirty = true;
}
}
void
grid_cursor_move(struct grid *grid, int cols)
{
int new_cursor = grid->cursor + cols;
grid->cells[grid->cursor].dirty = true;
grid->cells[new_cursor].dirty = true;
grid->cursor = new_cursor;
grid->dirty = true;
}
void
grid_cursor_to(struct grid *grid, int pos)
{
grid_cursor_move(grid, pos - grid->cursor);
}