Add CLI History
Use the arrow keys to navigate between the last N commands, similar to most shells.
This commit is contained in:
parent
a3d854fde3
commit
ad9a081e8b
2 changed files with 111 additions and 4 deletions
|
|
@ -36,7 +36,7 @@
|
|||
#define CLILineBufferMaxSize 100
|
||||
#define CLIMaxDictionaries 10
|
||||
#define CLIEntryTabAlign 13
|
||||
|
||||
#define CLIMaxHistorySize 10
|
||||
|
||||
|
||||
// ----- Macros -----
|
||||
|
|
@ -67,6 +67,8 @@
|
|||
const char name##CLIDict_DescEntry[] = description;
|
||||
#endif
|
||||
|
||||
#define RING_PREV(i) wrap(i-1,0,CLIMaxHistorySize-1)
|
||||
#define RING_NEXT(i) wrap(i+1,0,CLIMaxHistorySize-1)
|
||||
|
||||
|
||||
// ----- Structs -----
|
||||
|
|
@ -90,6 +92,13 @@ CLIDictItem *CLIDict [CLIMaxDictionaries];
|
|||
char* CLIDictNames[CLIMaxDictionaries];
|
||||
uint8_t CLIDictionariesUsed;
|
||||
|
||||
// History
|
||||
char CLIHistoryBuffer[CLIMaxHistorySize][CLILineBufferMaxSize];
|
||||
uint8_t CLIHistoryHead;
|
||||
uint8_t CLIHistoryTail;
|
||||
int8_t CLIHistoryCurrent;
|
||||
|
||||
// Debug
|
||||
uint8_t CLILEDState;
|
||||
uint8_t CLIHexDebugMode;
|
||||
|
||||
|
|
@ -102,8 +111,11 @@ void CLI_process();
|
|||
void CLI_registerDictionary( const CLIDictItem *cmdDict, const char* dictName );
|
||||
void CLI_argumentIsolation( char* string, char** first, char** second );
|
||||
|
||||
int wrap( int x, int low, int high );
|
||||
void CLI_commandLookup();
|
||||
void CLI_tabCompletion();
|
||||
void cli_saveHistory( char *buff );
|
||||
void cli_retreiveHistory( int index );
|
||||
|
||||
// CLI Command Functions
|
||||
void cliFunc_arch ( char* args );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue