From 8392f6c859194a21efd9e93956f47517077f026d Mon Sep 17 00:00:00 2001 From: Letter Date: Tue, 24 Nov 2020 21:01:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=89=A7=E8=A1=8Cshell?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=97=B6=E5=B0=BE=E8=A1=8C=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E7=9A=84=E8=A1=A8=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/log/log.c | 3 ++- src/shell.c | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) 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'); + } } } }