libhl/source/main.c

49 lines
986 B
C
Raw Normal View History

2023-08-21 09:05:27 -04:00
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include "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';
2023-08-21 09:05:27 -04:00
/* 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
2023-08-23 21:37:40 -04:00
terminal_hl_init();
2023-08-19 18:49:10 -04:00
//
2023-08-23 21:37:40 -04:00
#include "hl_c.inc";
//
render_string(buffer, "cterm");
putchar('\n');
2023-08-21 14:07:39 -04:00
fflush(stdout);
//hl_deinit();
2023-08-19 18:49:10 -04:00
free(buffer);
return 0;
}