/* main.c * Copyright 2023 Anon Anonson, Ognjen 'xolatile' Milan Robovic, Emil Williams * SPDX Identifier: GPL-3.0-only / NO WARRANTY / NO GUARANTEE */ #include #include #include #include #include #include "terminal_hl.h" #define ALLOCATION_CHUNK (10UL) static char * buffer = NULL; static size_t buffer_size = 0; int main(int argc, char * * argv) { UNUSED(argc); UNUSED(argv); // Buffer init buffer = realloc(buffer, ALLOCATION_CHUNK); do { if (!((buffer_size + 1) % ALLOCATION_CHUNK)) { /* Linear incremental reallocation (advanced)! */ size_t chunks = (buffer_size + 1) / ALLOCATION_CHUNK; buffer = realloc(buffer, ++chunks * ALLOCATION_CHUNK); } buffer[buffer_size] = '\0'; /* TODO handle me */ assert(read(STDIN_FILENO, &buffer[buffer_size], sizeof (*buffer)) != -1); ++buffer_size; } while (buffer[buffer_size - 1]); buffer[buffer_size - 1] = '\0'; // Highlight init terminal_hl_init(); // #include "syntax/c.h" // render_string(buffer, "cterm"); putchar('\n'); fflush(stdout); //hl_deinit(); free(buffer); //terminal_hl_deinit(); return 0; }