vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 35b3ab7622ce26a7db58fe2f3a850b0afe763ce1 parent 2e304150297751d40d1429da0f5489afe31a4ba6 Author: Marc André Tanner <mat@brain-dump.org> Date: Tue, 7 Jul 2015 09:55:00 +0200 view: properly NUL terminate whitespace replacement symbols This should not be a problem in practice, since cell->data is large enough anyway. Diffstat:
| M | view.c | | | 6 | +++--- |
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/view.c b/view.c @@ -165,7 +165,7 @@ static bool view_addch(View *view, Cell *cell) { cell->len = w == 0 ? 1 : 0; int t = w == 0 ? SYNTAX_SYMBOL_TAB : SYNTAX_SYMBOL_TAB_FILL; - strncpy(cell->data, view->symbols[t]->symbol, sizeof(cell->data)); + strncpy(cell->data, view->symbols[t]->symbol, sizeof(cell->data)-1); if (view->symbols[t]->color) cell->attr = view->symbols[t]->color->attr | (cell->attr & A_REVERSE); view->line->cells[view->col] = *cell; @@ -185,7 +185,7 @@ static bool view_addch(View *view, Cell *cell) { view->line->lineno = lineno; } - strncpy(cell->data, view->symbols[SYNTAX_SYMBOL_EOL]->symbol, sizeof(cell->data)); + strncpy(cell->data, view->symbols[SYNTAX_SYMBOL_EOL]->symbol, sizeof(cell->data)-1); if (view->symbols[SYNTAX_SYMBOL_EOL]->color) cell->attr = view->symbols[SYNTAX_SYMBOL_EOL]->color->attr; @@ -213,7 +213,7 @@ static bool view_addch(View *view, Cell *cell) { } if (cell->data[0] == ' ') { - strncpy(cell->data, view->symbols[SYNTAX_SYMBOL_SPACE]->symbol, sizeof(cell->data)); + strncpy(cell->data, view->symbols[SYNTAX_SYMBOL_SPACE]->symbol, sizeof(cell->data)-1); if (view->symbols[SYNTAX_SYMBOL_SPACE]->color) cell->attr = view->symbols[SYNTAX_SYMBOL_SPACE]->color->attr | (cell->attr & A_REVERSE);