diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-04-03 10:55:59 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-04-03 13:17:24 +0200 |
| commit | 5b018a537d52d90c630deb9fa03d81c71e316ec7 (patch) | |
| tree | e76a37699bcd85e03e955186f2d6dec81ef447a2 /view.c | |
| parent | 09dc605ae16fc2d6d8406d7e6c29ef9e8b957802 (diff) | |
| download | vis-5b018a537d52d90c630deb9fa03d81c71e316ec7.tar.gz vis-5b018a537d52d90c630deb9fa03d81c71e316ec7.tar.xz | |
view: make syntax coloring more robust
Do not crash if for some reason view->{start,end} have outdated values.
Diffstat (limited to 'view.c')
| -rw-r--r-- | view.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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); |
