diff --git a/extensions/log/log.c b/extensions/log/log.c index 2a2de22..395be28 100644 --- a/extensions/log/log.c +++ b/extensions/log/log.c @@ -206,7 +206,8 @@ void logHexDump(Log *log, void *base, unsigned int length) printLen = 0; } } -SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), +SHELL_EXPORT_CMD( +SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_DISABLE_RETURN, hexdump, logHexDump, hex dump\r\n hexdump [log] [base] [len]); #if SHELL_USING_COMPANION == 1 diff --git a/src/shell.c b/src/shell.c index 10368f9..c180dad 100644 --- a/src/shell.c +++ b/src/shell.c @@ -1695,18 +1695,24 @@ void shellHandler(Shell *shell, char data) #if SHELL_SUPPORT_END_LINE == 1 void shellWriteEndLine(Shell *shell, char *buffer, int len) { - shellWriteString(shell, shellText[SHELL_TEXT_CLEAR_LINE]); + if (!shell->status.isActive) + { + shellWriteString(shell, shellText[SHELL_TEXT_CLEAR_LINE]); + } while (len --) { shell->write(*buffer++); } - shellWriteCommandLine(shell, 0); - if (shell->parser.length > 0) + if (!shell->status.isActive) { - shellWriteString(shell, shell->parser.buffer); - for (short i = 0; i < shell->parser.length - shell->parser.cursor; i++) + shellWriteCommandLine(shell, 0); + if (shell->parser.length > 0) { - shell->write('\b'); + shellWriteString(shell, shell->parser.buffer); + for (short i = 0; i < shell->parser.length - shell->parser.cursor; i++) + { + shell->write('\b'); + } } } }