feature: a lot of stuff and got to a working command line ish
This commit is contained in:
30
kernel/libc/readline.c
Normal file
30
kernel/libc/readline.c
Normal file
@@ -0,0 +1,30 @@
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user