feat: add support for shell builtins to command completion
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <montauk/string.h>
|
||||
#include <montauk/syscall.h>
|
||||
#include "shell.h"
|
||||
|
||||
#define RD_MAX 128
|
||||
|
||||
@@ -58,6 +59,7 @@ int get_completions( // returns no. of results
|
||||
int arrayMax
|
||||
) {
|
||||
|
||||
// --- System commands (0:/os/*.elf) ----
|
||||
const char* names[RD_MAX] = { };
|
||||
|
||||
int n = montauk::readdir("0:/os", names, RD_MAX);
|
||||
@@ -89,5 +91,19 @@ int get_completions( // returns no. of results
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Shell builtins ----
|
||||
|
||||
size_t builtins_count = sizeof(shell_builtins) / sizeof(const char*);
|
||||
|
||||
for (size_t i = 0; i < builtins_count; i++) {
|
||||
if (montauk::starts_with(shell_builtins[i], (const char*)string)) {
|
||||
if (r > arrayMax)
|
||||
break;
|
||||
|
||||
array[r] = (char *)shell_builtins[i];
|
||||
r++;
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user