From c9f1161ecb323c7872559dd40c56d691dbd5959f Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sun, 19 Apr 2026 17:09:06 +0200 Subject: Start working on parsing/scanning. Too many changes to list them all individually. --- src/syscmd.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) (limited to 'src/syscmd.c') diff --git a/src/syscmd.c b/src/syscmd.c index 6c3d2e5..8c3a88a 100644 --- a/src/syscmd.c +++ b/src/syscmd.c @@ -19,18 +19,59 @@ */ #include +#include #include "syscmd.h" +#include "nls.h" + +static void syscmd_version(struct aplwc *, struct aplwc_syscmd *, char *); +static void syscmd_exit(struct aplwc *, struct aplwc_syscmd *, char *); +static void syscmd_stats(struct aplwc *, struct aplwc_syscmd *, char *); static struct aplwc_syscmd syscmds[] = { - {.name = "help"}, - {.name = "version"}, - {.name = "reset"}, - {.name = "exit"}, + { + .name = "version", + .run = syscmd_version + }, + { + .name = "exit", + .run = syscmd_exit + }, + { + .name = "stats", + .run = syscmd_stats + }, }; void init_syscmds(struct aplwc *aplwc) { - for(int i = 0; i < (sizeof(syscmds)/sizeof(*syscmds)); i++) + for(size_t i = 0; i < (sizeof(syscmds)/sizeof(*syscmds)); i++) aplwc_register_syscmd(aplwc, &syscmds[i]); } + +static void +syscmd_version(struct aplwc *aplwc, struct aplwc_syscmd *syscmd, char *input) +{ + if(strlen(input) > 0) + aplwc_syscmd_error(aplwc, syscmd, _("Unexpected: %s")); + else + aplwc_syscmd_output(aplwc, syscmd, _("Version 0")); +} + +static void +syscmd_exit(struct aplwc *aplwc, struct aplwc_syscmd *syscmd, char *input) +{ + if(strlen(input) > 0) + aplwc_syscmd_error(aplwc, syscmd, _("Unexpected: %s")); + else + aplwc_exit(aplwc); +} + +static void +syscmd_stats(struct aplwc *aplwc, struct aplwc_syscmd *syscmd, char *input) +{ + if(strlen(input) > 0) + aplwc_syscmd_error(aplwc, syscmd, _("Unexpected: %s")); + else + aplwc_syscmd_output(aplwc, syscmd, _("Stats...\nMore stats...")); +} -- cgit v1.2.3