From 3d6a857b9186ef6304ea6cf04627c2b787169f29 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Sat, 16 Jul 2016 15:59:46 +0200 Subject: Make way for libc implementation --- src/lib/libc/readline.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/lib/libc/readline.c (limited to 'src/lib/libc/readline.c') diff --git a/src/lib/libc/readline.c b/src/lib/libc/readline.c new file mode 100644 index 0000000..20c2007 --- /dev/null +++ b/src/lib/libc/readline.c @@ -0,0 +1,49 @@ +#include +#include +#include + +#include + +// ** READLINE + +#define READLINE_MAX_LEN 256 + +typedef struct _rdln_hist { + int max; + int n; + char **str; +} readline_history; + +readline_history stdio_history = {0, 0, 0}; + + +char *readline(const char* prompt) { + // readline_history *h = &stdio_history; + + puts(prompt); + + char* buf = malloc(READLINE_MAX_LEN); + if (buf == NULL) return NULL; + + char* ret = fgets(buf, READLINE_MAX_LEN, stdin); + if (ret == NULL) { + free(buf); + return NULL; + } + + int n = strlen(ret); + if (n > 0 && ret[n-1] == '\n') ret[n-1] = 0; + + // TODO + + return ret; +} + +void add_history(const char* line) { + // readline_history *h = &stdio_history; + + // TODO +} + + +/* vim: set sts=0 ts=4 sw=4 tw=0 noet :*/ -- cgit v1.2.3