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

31 lines
614 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; ++i) {
result[i] = getc();
kprint(&result[i]);
if (result[i] == '\n') {
result[i] = 0;
break;
}
}
return result;
}