diff --git a/CLI/CLI.c b/CLI/CLI.c index 050ce30..62d5f74 100644 --- a/CLI/CLI.c +++ b/CLI/CLI.c @@ -6,22 +6,22 @@ #include "../FIFOBuff/FIFOBuffChar.h" -CLI_lineOutFn CLI_lineOut; +CLI_charOutFn CLI_charOut; CMDList_t* CMDList; FIFOBuffChar_t* FIFO; // initilize and register the lineout print function -bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList) +bool CLI_init(CLI_charOutFn lineOut, CMDList_t* cmdList) { - CLI_lineOut = lineOut; + CLI_charOut = lineOut; CMDList = cmdList; FIFO = FIFOBuffChar_create(); - if (CLI_lineOut != NULL) + if (CLI_charOut != NULL) { - (*CLI_lineOut)(">"); - (*CLI_lineOut)(" "); + (*CLI_charOut)(">"); + (*CLI_charOut)(" "); } return true; @@ -29,7 +29,7 @@ bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList) bool CLI_deinit() { - CLI_lineOut = NULL; + CLI_charOut = NULL; CMDList = NULL; FIFOBuffChar_delete(FIFO); @@ -61,23 +61,23 @@ int tryExecute(FIFOBuffChar_t* fifo) { (*(cmd->fn))(line); - if (CLI_lineOut != NULL) + if (CLI_charOut != NULL) { - (*CLI_lineOut)(">"); - (*CLI_lineOut)(" "); + (*CLI_charOut)(">"); + (*CLI_charOut)(" "); } return true; } else { - if (CLI_lineOut != NULL) + if (CLI_charOut != NULL) { char err[100]; sprintf(&err[0], "command not found: %s\n> ", line); for (int i=0; err[i] != 0; i++) { char c[2] = {err[i], 0}; - (*CLI_lineOut)(&c[0]); + (*CLI_charOut)(&c[0]); } } return false; @@ -102,9 +102,9 @@ bool CLI_charIn(char c) ) { FIFOBuffChar_put(FIFO, c); // save char in buffer - if (CLI_lineOut != NULL) + if (CLI_charOut != NULL) { // echo to terminal - (*CLI_lineOut)(&c); + (*CLI_charOut)(&c); } } else @@ -114,9 +114,9 @@ bool CLI_charIn(char c) { case '\n': case '\r': - if (CLI_lineOut != NULL) + if (CLI_charOut != NULL) { // echo to terminal - (*CLI_lineOut)(&c); + (*CLI_charOut)(&c); } FIFOBuffChar_t* fifo = FIFO; FIFO = FIFOBuffChar_create(); @@ -127,9 +127,13 @@ bool CLI_charIn(char c) case 127: // backspace if (FIFOBuffChar_pop(FIFO)) { - (*CLI_lineOut)("\x1b"); - (*CLI_lineOut)("["); - (*CLI_lineOut)("D"); + (*CLI_charOut)("\x1b"); + (*CLI_charOut)("["); + (*CLI_charOut)("D"); + (*CLI_charOut)(" "); + (*CLI_charOut)("\x1b"); + (*CLI_charOut)("["); + (*CLI_charOut)("D"); } break; @@ -138,7 +142,7 @@ bool CLI_charIn(char c) for (int i=0; str[i] != 0; i++) { char ch[2] = {str[i], 0}; - (*CLI_lineOut)(&ch[0]); + (*CLI_charOut)(&ch[0]); } break; @@ -147,7 +151,7 @@ bool CLI_charIn(char c) for (int i=0; str[i] != 0; i++) { char ch[2] = {str[i], 0}; - (*CLI_lineOut)(&ch[0]); + (*CLI_charOut)(&ch[0]); } break; } diff --git a/CLI/CLI.h b/CLI/CLI.h index 763dfad..32af73a 100644 --- a/CLI/CLI.h +++ b/CLI/CLI.h @@ -5,10 +5,10 @@ #include "../CMDList/CMDList.h" -typedef int (*CLI_lineOutFn)(const char* line); +typedef int (*CLI_charOutFn)(const char* line); // initilize and register the lineout print function -bool CLI_init(CLI_lineOutFn lineOut, CMDList_t* cmdList); +bool CLI_init(CLI_charOutFn lineOut, CMDList_t* cmdList); bool CLI_deinit(); // to recive a single caracter diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..720145f --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,11 @@ + +# FIFO Buffer +add_library(FIFOBuffChar FIFOBuff/FIFOBuffChar.c) + +# CMD List +add_library(CMDList CMDList/CMDList.c) +add_library(CMDListPrint CMDList/printList.c) + +# CLI +add_library(CLI CLI/CLI.c) +target_link_libraries(CLI CMDList FIFOBuffChar)