Change lw to lwobj to better fit with clang-tidy

This commit is contained in:
Tilen Majerle 2022-12-20 17:45:18 +01:00
parent d1e0a709b2
commit f4835d712d
2 changed files with 59 additions and 58 deletions

View File

@ -78,9 +78,9 @@ typedef int32_t (*lwshell_cmd_fn)(int32_t argc, char** argv);
/** /**
* \brief Callback function for character output * \brief Callback function for character output
* \param[in] str: String to output * \param[in] str: String to output
* \param[in] lw: LwSHELL instance * \param[in] lwobj: LwSHELL instance
*/ */
typedef void (*lwshell_output_fn)(const char* str, struct lwshell* lw); typedef void (*lwshell_output_fn)(const char* str, struct lwshell* lwobj);
/** /**
* \brief LwSHELL main structure * \brief LwSHELL main structure

View File

@ -48,14 +48,14 @@
#define LWSHELL_ASCII_SPACE 0x20 /*!< Space character */ #define LWSHELL_ASCII_SPACE 0x20 /*!< Space character */
#if LWSHELL_CFG_USE_OUTPUT #if LWSHELL_CFG_USE_OUTPUT
#define LW_OUTPUT(lw, str) \ #define LWSHELL_OUTPUT(lwobj, str) \
do { \ do { \
if ((lw)->out_fn != NULL && (str) != NULL) { \ if ((lwobj)->out_fn != NULL && (str) != NULL) { \
(lw)->out_fn((str), (lw)); \ (lwobj)->out_fn((str), (lwobj)); \
} \ } \
} while (0) } while (0)
#else #else
#define LW_OUTPUT(lw, str) #define LWSHELL_OUTPUT(lwobj, str)
#endif #endif
/* Array of all commands */ /* Array of all commands */
@ -64,52 +64,52 @@ static size_t cmds_cnt;
static lwshell_t shell; static lwshell_t shell;
/* Get shell instance from input */ /* Get shell instance from input */
#define LWSHELL_GET_LW(lw) ((lw) != NULL ? (lw) : (&shell)) #define LWSHELL_GET_LWOBJ(lwobj) ((lwobj) != NULL ? (lwobj) : (&shell))
/* Add character to instance */ /* Add character to instance */
#define LWSHELL_ADD_CH(lw, ch) \ #define LWSHELL_ADD_CH(lwobj, ch) \
do { \ do { \
if ((lw)->buff_ptr < (LWSHELL_ARRAYSIZE(lw->buff) - 1)) { \ if ((lwobj)->buff_ptr < (LWSHELL_ARRAYSIZE(lwobj->buff) - 1)) { \
(lw)->buff[(lw)->buff_ptr] = ch; \ (lwobj)->buff[(lwobj)->buff_ptr] = ch; \
(lw)->buff[++(lw)->buff_ptr] = '\0'; \ (lwobj)->buff[++(lwobj)->buff_ptr] = '\0'; \
} \ } \
} while (0) } while (0)
/* Reset buffers */ /* Reset buffers */
#define LWSHELL_RESET_BUFF(lw) \ #define LWSHELL_RESET_BUFF(lwobj) \
do { \ do { \
memset((lw)->buff, 0x00, sizeof((lw)->buff)); \ memset((lwobj)->buff, 0x00, sizeof((lwobj)->buff)); \
memset((lw)->argv, 0x00, sizeof((lw)->argv)); \ memset((lwobj)->argv, 0x00, sizeof((lwobj)->argv)); \
(lw)->buff_ptr = 0; \ (lwobj)->buff_ptr = 0; \
} while (0) } while (0)
/** /**
* \brief Parse input string * \brief Parse input string
* \param[in] lw: LwSHELL instance * \param[in] lwobj: LwSHELL instance
*/ */
static void static void
prv_parse_input(lwshell_t* lw) { prv_parse_input(lwshell_t* lwobj) {
size_t s_len; size_t s_len;
char* str; char* str;
lw = LWSHELL_GET_LW(lw); lwobj = LWSHELL_GET_LWOBJ(lwobj);
/* Check string length and compare with buffer pointer */ /* Check string length and compare with buffer pointer */
if ((s_len = strlen(lw->buff)) != lw->buff_ptr) { if ((s_len = strlen(lwobj->buff)) != lwobj->buff_ptr) {
return; return;
} }
/* Must be more than `1` character since we have to include end of line */ /* Must be more than `1` character since we have to include end of line */
if (lw->buff_ptr > 0) { if (lwobj->buff_ptr > 0) {
/* Set default values */ /* Set default values */
lw->argc = 0; lwobj->argc = 0;
lw->argv[0] = lw->buff; lwobj->argv[0] = lwobj->buff;
/* Process complete input */ /* Process complete input */
str = lw->buff; str = lwobj->buff;
/* Process complete string */ /* Process complete string */
lw->argc = 0; lwobj->argc = 0;
while (*str != '\0') { while (*str != '\0') {
while (*str == ' ' && ++str) {} /* Remove leading spaces */ while (*str == ' ' && ++str) {} /* Remove leading spaces */
if (*str == '\0') { if (*str == '\0') {
@ -119,7 +119,7 @@ prv_parse_input(lwshell_t* lw) {
/* Check if it starts with quote to handle escapes */ /* Check if it starts with quote to handle escapes */
if (*str == '"') { if (*str == '"') {
++str; ++str;
lw->argv[lw->argc++] = str; /* Set start of argument after quotes */ lwobj->argv[lwobj->argc++] = str; /* Set start of argument after quotes */
/* Process until end of quote */ /* Process until end of quote */
while (*str != '\0') { while (*str != '\0') {
@ -137,7 +137,7 @@ prv_parse_input(lwshell_t* lw) {
} }
} }
} else { } else {
lw->argv[lw->argc++] = str; /* Set start of argument directly on character */ lwobj->argv[lwobj->argc++] = str; /* Set start of argument directly on character */
while (*str != ' ' && *str != '\0') { while (*str != ' ' && *str != '\0') {
if (*str == '"') { /* Quote should not be here... */ if (*str == '"') { /* Quote should not be here... */
*str = '\0'; /* ...add NULL termination to end token */ *str = '\0'; /* ...add NULL termination to end token */
@ -152,19 +152,19 @@ prv_parse_input(lwshell_t* lw) {
} }
/* Check for number of arguments */ /* Check for number of arguments */
if (lw->argc == LWSHELL_ARRAYSIZE(lw->argv)) { if (lwobj->argc == LWSHELL_ARRAYSIZE(lwobj->argv)) {
break; break;
} }
} }
/* Check for command */ /* Check for command */
if (lw->argc > 0 && cmds_cnt > 0) { if (lwobj->argc > 0 && cmds_cnt > 0) {
lwshell_cmd_t* c = NULL; lwshell_cmd_t* c = NULL;
size_t arg_len = strlen(lw->argv[0]); size_t arg_len = strlen(lwobj->argv[0]);
/* Process all commands */ /* Process all commands */
for (size_t i = 0; i < cmds_cnt; ++i) { for (size_t i = 0; i < cmds_cnt; ++i) {
if (arg_len == strlen(cmds[i].name) && strncmp(cmds[i].name, lw->argv[0], arg_len) == 0) { if (arg_len == strlen(cmds[i].name) && strncmp(cmds[i].name, lwobj->argv[0], arg_len) == 0) {
c = &cmds[i]; c = &cmds[i];
break; break;
} }
@ -172,25 +172,26 @@ prv_parse_input(lwshell_t* lw) {
/* Valid command ready? */ /* Valid command ready? */
if (c != NULL) { if (c != NULL) {
if (lw->argc == 2 && lw->argv[1][0] == '-' && lw->argv[1][1] == 'h' && lw->argv[1][2] == '\0') { if (lwobj->argc == 2 && lwobj->argv[1][0] == '-' && lwobj->argv[1][1] == 'h'
&& lwobj->argv[1][2] == '\0') {
/* Here we can print version */ /* Here we can print version */
LW_OUTPUT(lw, c->desc); LWSHELL_OUTPUT(lwobj, c->desc);
LW_OUTPUT(lw, "\r\n"); LWSHELL_OUTPUT(lwobj, "\r\n");
} else { } else {
c->fn(lw->argc, lw->argv); c->fn(lwobj->argc, lwobj->argv);
} }
#if LWSHELL_CFG_USE_ENABLE_LIST_CMD #if LWSHELL_CFG_USE_ENABLE_LIST_CMD
} else if (strncmp(lw->argv[0], "listcmd", 7) == 0) { } else if (strncmp(lwobj->argv[0], "listcmd", 7) == 0) {
LW_OUTPUT(lw, "List of registered commands\r\n"); LWSHELL_OUTPUT(lwobj, "List of registered commands\r\n");
for (size_t i = 0; i < cmds_cnt; ++i) { for (size_t i = 0; i < cmds_cnt; ++i) {
LW_OUTPUT(lw, cmds[i].name); LWSHELL_OUTPUT(lwobj, cmds[i].name);
LW_OUTPUT(lw, "\t\t\t"); LWSHELL_OUTPUT(lwobj, "\t\t\t");
LW_OUTPUT(lw, cmds[i].desc); LWSHELL_OUTPUT(lwobj, cmds[i].desc);
LW_OUTPUT(lw, "\r\n"); LWSHELL_OUTPUT(lwobj, "\r\n");
} }
#endif /* LWSHELL_CFG_USE_ENABLE_LIST_CMD */ #endif /* LWSHELL_CFG_USE_ENABLE_LIST_CMD */
} else { } else {
LW_OUTPUT(lw, "Unknown command\r\n"); LWSHELL_OUTPUT(lwobj, "Unknown command\r\n");
} }
} }
} }
@ -202,8 +203,8 @@ prv_parse_input(lwshell_t* lw) {
*/ */
lwshellr_t lwshellr_t
lwshell_init(void) { lwshell_init(void) {
lwshell_t* lw = LWSHELL_GET_LW(NULL); lwshell_t* lwobj = LWSHELL_GET_LWOBJ(NULL);
memset(lw, 0x00, sizeof(*lw)); memset(lwobj, 0x00, sizeof(*lwobj));
return lwshellOK; return lwshellOK;
} }
@ -217,8 +218,8 @@ lwshell_init(void) {
*/ */
lwshellr_t lwshellr_t
lwshell_set_output_fn(lwshell_output_fn out_fn) { lwshell_set_output_fn(lwshell_output_fn out_fn) {
lwshell_t* lw = LWSHELL_GET_LW(NULL); lwshell_t* lwobj = LWSHELL_GET_LWOBJ(NULL);
lw->out_fn = out_fn; lwobj->out_fn = out_fn;
return lwshellOK; return lwshellOK;
} }
@ -258,7 +259,7 @@ lwshell_register_cmd(const char* cmd_name, lwshell_cmd_fn cmd_fn, const char* de
lwshellr_t lwshellr_t
lwshell_input(const void* in_data, size_t len) { lwshell_input(const void* in_data, size_t len) {
const char* d = in_data; const char* d = in_data;
lwshell_t* lw = LWSHELL_GET_LW(NULL); lwshell_t* lwobj = LWSHELL_GET_LWOBJ(NULL);
if (in_data == NULL || len == 0) { if (in_data == NULL || len == 0) {
return lwshellERRPAR; return lwshellERRPAR;
@ -268,31 +269,31 @@ lwshell_input(const void* in_data, size_t len) {
for (size_t i = 0; i < len; ++i) { for (size_t i = 0; i < len; ++i) {
switch (d[i]) { switch (d[i]) {
case LWSHELL_ASCII_CR: { case LWSHELL_ASCII_CR: {
LW_OUTPUT(lw, "\r"); LWSHELL_OUTPUT(lwobj, "\r");
prv_parse_input(lw); prv_parse_input(lwobj);
LWSHELL_RESET_BUFF(lw); LWSHELL_RESET_BUFF(lwobj);
break; break;
} }
case LWSHELL_ASCII_LF: { case LWSHELL_ASCII_LF: {
LW_OUTPUT(lw, "\n"); LWSHELL_OUTPUT(lwobj, "\n");
prv_parse_input(lw); prv_parse_input(lwobj);
LWSHELL_RESET_BUFF(lw); LWSHELL_RESET_BUFF(lwobj);
break; break;
} }
case LWSHELL_ASCII_BACKSPACE: { case LWSHELL_ASCII_BACKSPACE: {
/* Try to delete character from buffer */ /* Try to delete character from buffer */
if (lw->buff_ptr > 0) { if (lwobj->buff_ptr > 0) {
--lw->buff_ptr; --lwobj->buff_ptr;
lw->buff[lw->buff_ptr] = '\0'; lwobj->buff[lwobj->buff_ptr] = '\0';
LW_OUTPUT(lw, "\b \b"); LWSHELL_OUTPUT(lwobj, "\b \b");
} }
break; break;
} }
default: { default: {
char str[2] = {d[i]}; char str[2] = {d[i]};
LW_OUTPUT(lw, str); LWSHELL_OUTPUT(lwobj, str);
if (d[i] >= 0x20 && d[i] < 0x7F) { if (d[i] >= 0x20 && d[i] < 0x7F) {
LWSHELL_ADD_CH(lw, d[i]); LWSHELL_ADD_CH(lwobj, d[i]);
} }
} }
} }