Files
my-kern/kernel/libc/readline.c

31 lines
631 B
C

//
// Created by rick on 01-02-21.
//
#include <libc/readline.h>
#include <libc/libc.h>
#include <types.h>
#include <libk/kprint.h>
#include <drivers/keyboard.h>
#include <mem/malloc.h>
#define RESULT_SIZE 256
const char *default_msg = "> ";
char *readline(const char *prompt) {
kprint(prompt == NULL ? default_msg : prompt);
char *result = malloc(RESULT_SIZE);
memset(result, 0, RESULT_SIZE);
for (int i = 0; i < RESULT_SIZE - 1; ++i) {
result[i] = getc();
kprint(&result[i]);
if (result[i] == '\n') {
result[i] = 0;
break;
}
}
return result;
}