From 92a7dbe922352b115c78839aa49c6505aedc7289 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 30 Jan 2017 22:37:46 -0500 Subject: [PATCH] add Command module --- src/core/Command.cc | 26 ++++++++++++++++++++++++++ src/core/Command.h | 27 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/core/Command.cc create mode 100644 src/core/Command.h diff --git a/src/core/Command.cc b/src/core/Command.cc new file mode 100644 index 0000000..fe31904 --- /dev/null +++ b/src/core/Command.cc @@ -0,0 +1,26 @@ +#include "Command.h" +#include + +static const struct +{ + const char * name; + uint32_t flags; +} Commands[] = { + {"forward-up-to-char", Command::FOLLOWING_CHAR}, + {"forward-on-to-char", Command::FOLLOWING_CHAR}, + {"back-up-to-char", Command::FOLLOWING_CHAR}, + {"back-on-to-char", Command::FOLLOWING_CHAR}, + {"delete-line", 0u}, +}; + +uint32_t Command::find_command_by_name(const char * name) +{ + for (uint32_t i = 0u; i < COMMAND_COUNT; i++) + { + if (strcmp(Commands[i].name, name) == 0u) + { + return i; + } + } + return COMMAND_COUNT; +} diff --git a/src/core/Command.h b/src/core/Command.h new file mode 100644 index 0000000..bc417b0 --- /dev/null +++ b/src/core/Command.h @@ -0,0 +1,27 @@ +#ifndef COMMAND_H +#define COMMAND_H + +#include + +class Command +{ +public: + enum : uint32_t + { + FOLLOWING_CHAR = 0x1u, + }; + + enum : uint32_t + { + FORWARD_UP_TO_CHAR, + FORWARD_ON_TO_CHAR, + BACK_UP_TO_CHAR, + BACK_ON_TO_CHAR, + DELETE_LINE, + COMMAND_COUNT, + }; + + uint32_t find_command_by_name(const char * name); +}; + +#endif