From 0206052b5660cb77cdd0a0ac3c83dd4c3d996007 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Mon, 9 Jul 2018 15:48:55 -0700 Subject: started on positioning + command structure --- command.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 command.c (limited to 'command.c') diff --git a/command.c b/command.c new file mode 100644 index 0000000..a4b4e55 --- /dev/null +++ b/command.c @@ -0,0 +1,40 @@ + +#include "command.h" + +#include "ccan/tal/tal.h" +#include "ccan/tal/str/str.h" + +void +command_init(struct command *cmd) { + cmd->children = NULL; +} + +int +command_is_prefix(struct command *cmd) { + size_t count = tal_count(cmd->children); + return count > 0; +} + + +struct command * +test_root_commands(tal_t *ctx) { + unsigned long i, j; + struct command *cmds = NULL; + struct command *child = NULL; + + cmds = tal_arr(ctx, struct command, 5); + + const unsigned long c = 'a'; + for (i = 0; i < tal_count(cmds); i++) { + cmds[i].name = tal_fmt(cmds, "hello-%d", (int)i); + cmds[i].bind = tal_fmt(cmds, "%c", (int)(c+i)); + child = cmds[i].children = tal_arr(cmds, struct command, i % 2); + for (j = 0; j < tal_count(child); j++) { + child[j].name = tal_fmt(child, "child-%d-%d", (int)i, (int)j); + child[j].bind = tal_fmt(child, "%c", (int)(c+j)); + child[j].children = NULL; + } + } + + return cmds; +} -- cgit v1.2.3