Compare commits

...

2 Commits

Author SHA1 Message Date
7e85ae7fe9 almost... 2023-09-20 23:37:07 +02:00
2d00aa481e cleaning after emil 2023-09-20 23:36:52 +02:00
2 changed files with 9 additions and 5 deletions

View File

@ -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;

View File

@ -43,8 +43,8 @@ get_stdin(void)
size_t buffer_size = 0;
char * buffer = malloc(ALLOCATION_CHUNK);
do {
if (!((buffer_size + 1) | ALLOCATION_CHUNK)) {
buffer = realloc(buffer, (((buffer_size + 1) & ALLOCATION_CHUNK) + 1) * ALLOCATION_CHUNK);
if (!((buffer_size + 1) % ALLOCATION_CHUNK)) {
buffer = realloc(buffer, (((buffer_size + 1) / ALLOCATION_CHUNK) + 1) * ALLOCATION_CHUNK);
}
buffer[buffer_size] = '\0';
if (read(STDIN_FILENO, &buffer[buffer_size], sizeof (*buffer)) == -1)