Files
jsix/src/user/6s/commands.cpp
Justin C. Miller 172eb70551 [6s] Break out builtin commands into a list of structs
The 6s builtin commands are now in a separate file, with a list of name,
description, and function pointers.
2024-04-29 01:11:15 -07:00

36 lines
899 B
C++

#include <edit/line.h>
#include <util/format.h>
#include "commands.h"
static void
help(edit::source &s)
{
for (unsigned i = 0; i < g_builtins_count; ++i) {
char line[100];
util::counted<char> output { line, sizeof(line) };
builtin &cmd = g_builtins[i];
size_t len = util::format(output, "%20s - %s\r\n", cmd.name(), cmd.description());
s.write(line, len);
}
}
static void
version(edit::source &s)
{
static const char *gv = GIT_VERSION;
char line[100];
util::counted<char> output { line, sizeof(line) };
size_t len = util::format(output, "jsix version %s\r\n", gv);
s.write(line, len);
}
builtin g_builtins[] = {
{ "help", "list availble commands", help },
{ "version", "print current jsix version", version },
};
size_t g_builtins_count = sizeof(g_builtins) / sizeof(g_builtins[0]);