Files
my-kern/kernel/libc/readline.c
2021-02-10 18:56:47 +01:00

31 lines
618 B
C

//
// Created by rick on 01-02-21.
//
#include "readline.h"
#include <libc/libc.h>
#include <types.h>
#include <kprint.h>
#include <mem/mem.h>
#include <drivers/keyboard.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;
}