aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-05-18 00:38:29 -0400
committerJesse Luehrs <doy@tozt.net>2014-07-04 22:39:07 -0400
commit233fadb59f31ae04709ce8948631473382a140ac (patch)
treec73c6d36d30045b2b7c35d05cc8b483cab1881ef
parent924c84ed4be18b41790d93218e7c56d223233446 (diff)
downloadrunes-233fadb59f31ae04709ce8948631473382a140ac.tar.gz
runes-233fadb59f31ae04709ce8948631473382a140ac.zip
row has already been offset properly
-rw-r--r--src/screen.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/screen.c b/src/screen.c
index 6179970..f9124ce 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -99,6 +99,7 @@ void runes_screen_get_string(
RunesTerm *t, struct runes_loc *start, struct runes_loc *end,
char **strp, size_t *lenp)
{
+ RunesScreen *scr = &t->scr;
int row, col;
size_t capacity = 8;
@@ -113,11 +114,11 @@ void runes_screen_get_string(
for (row = start->row; row <= end->row; ++row) {
int start_col = row == start->row ? start->col : 0;
int end_col = row == end->row ? end->col : t->scr.grid->max.col;
+ struct runes_row *grid_row = &scr->grid->rows[row];
for (col = start_col; col < end_col; ++col) {
- struct runes_cell *cell;
+ struct runes_cell *cell = &grid_row->cells[col];
- cell = runes_screen_cell_at(t, row, col);
if (*lenp + cell->len > capacity) {
capacity *= 1.5;
*strp = realloc(*strp, capacity);
@@ -126,7 +127,7 @@ void runes_screen_get_string(
*lenp += cell->len;
}
- if (row != end->row && !runes_screen_row_at(t, row)->wrapped) {
+ if (row != end->row && !grid_row->wrapped) {
if (*lenp + 1 > capacity) {
capacity *= 1.5;
*strp = realloc(*strp, capacity);