diff options
Autocommit at 30.05.2022 @ 20:13
1 files changed, 6 insertions, 3 deletions
| -rw-r--r-- | src/Generic/ConsoleInterface/Menu.cpp | 9 |
diff --git a/src/Generic/ConsoleInterface/Menu.cpp b/src/Generic/ConsoleInterface/Menu.cpp index 23b3c31..910e946 100644 --- a/src/Generic/ConsoleInterface/Menu.cpp +++ b/src/Generic/ConsoleInterface/Menu.cpp @@ -35,7 +35,7 @@ void Menu::navigate() const { char buffer[MAX_LINE_WIDTH]; - unsigned startIndex, commandEnd, index; + unsigned startIndex, commandEnd, paramsStart, index; while (1) { startIndex = 0; inputLineBox(buffer, MAX_LINE_WIDTH, false); @@ -51,15 +51,18 @@ void Menu::navigate() const { index = menuOptions.get_count(); for (unsigned i = 0; i < menuOptions.get_count() && index == menuOptions.get_count(); i++) { - if (strncmp(buffer, menuOptions[i].get_name(), commandEnd) == 0) + if (strncmp(buffer + startIndex, menuOptions[i].get_name(), commandEnd) == 0) index = i; } + paramsStart = startIndex + commandEnd; + while (buffer[paramsStart] == ' ') paramsStart++; + if (index == menuOptions.get_count()) { printLine("Invalid menu option!"); continue; } - menuOptions[index].run(buffer + startIndex + commandEnd); + menuOptions[index].run(buffer + paramsStart); } } |
