From 5b018a537d52d90c630deb9fa03d81c71e316ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 3 Apr 2016 10:55:59 +0200 Subject: view: make syntax coloring more robust Do not crash if for some reason view->{start,end} have outdated values. --- view.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'view.c') diff --git a/view.c b/view.c index a41dac0..9dbcc3e 100644 --- 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); -- cgit v1.2.3