vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit d80db5b6551effad929b7ecb2a36ebe6293ed4f3
parent d341361f1ea587751c3a7cf941437e7b8aa09221
Author: Marc André Tanner <mat@brain-dump.org>
Date: Sun, 3 Apr 2016 10:55:59 +0200
view: make syntax coloring more robust
Do not crash if for some reason view->{start,end} have outdated values.
Diffstat:
| M | view.c | | | 4 | +++- |
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/view.c b/view.c @@ -141,7 +141,7 @@ static void view_syntax_color(View *view) { /* absolute position to start syntax highlighting */ const size_t lexer_start = view->start >= lexer_before_max ? view->start - lexer_before_max : 0; /* number of bytes used for syntax highlighting before visible are */ - const size_t lexer_before = view->start - lexer_start; + size_t lexer_before = view->start - lexer_start; /* number of bytes to read in one go */ const size_t text_size = lexer_before + (view->end - view->start); /* current buffer to work with */ @@ -150,6 +150,8 @@ static void view_syntax_color(View *view) { const size_t text_len = text_bytes_get(view->text, lexer_start, text_size, text); /* NUL terminate text section */ text[text_len] = '\0'; + if (text_len < lexer_before) + lexer_before = text_len; lua_getfield(L, -1, "load"); lua_pushstring(L, view->lexer_name);