|
- /* main.c
- * Copyright 2023 Anon Anonson, Ognjen 'xolatile' Milan Robovic, Emil Williams
- * SPDX Identifier: GPL-3.0-only / NO WARRANTY / NO GUARANTEE */
-
- #include <assert.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <fcntl.h>
- #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 "c.h"
- //
- render_string(buffer, "cterm");
- putchar('\n');
- fflush(stdout);
- //hl_deinit();
- free(buffer);
-
- return 0;
- }
|