diff --git a/source/hl.c b/source/hl.c index 8d93353..5c415d9 100644 --- a/source/hl.c +++ b/source/hl.c @@ -220,6 +220,9 @@ void render_string(const char * const string, token_t * t = *(token_t**)vector_get(&token_table, i); match_t * match = regex_match(t->syntax, string, true); + for(match_t * m = match; m->position != -1; m++){ + printf("%s: %d %d\n", t->syntax->str, m->position, m->width); + } if (match->position == -1) { free(match); continue; @@ -248,16 +251,17 @@ void render_string(const char * const string, } } if (max != &sentinel) { - const int padding = max->m[max->i].position - (s - string); + const match_t * mymatch = &(max->m[max->i]); + const int padding = mymatch->position - (s - string); if (padding) { display->callback(s, padding, NULL); } display->callback(s + padding, - max->m->width, + mymatch->width, max->t->hl->attributes); - s += padding + max->m->width; + s += padding + mymatch->width; } else { display->callback(s, 1, NULL); ++s;