31 lines
631 B
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;
|
|
}
|