From 4ac7518e43a8d3280bd88ad66c2c4c8456488ba4 Mon Sep 17 00:00:00 2001 From: hqm <13720409820@163.com> Date: Mon, 29 Nov 2021 10:27:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9DL(n)=E5=AE=8F=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8=E4=BD=BF=E7=94=A8=E4=B8=8A=E9=94=AE?= =?UTF-8?q?=E5=9B=9E=E7=9C=8B=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E6=97=B6?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=90=91=E5=8F=B3=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/xcmd_define.h | 2 +- src/xcmd.c | 6 ++---- src/xcmd_default_keys.c | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/inc/xcmd_define.h b/inc/xcmd_define.h index 508a2d5..807713b 100644 --- a/inc/xcmd_define.h +++ b/inc/xcmd_define.h @@ -94,7 +94,7 @@ extern "C" { #define DCH(n) "\x1B[%dP",n /* 删除字符 删除当前光标位置的 个字符,这会从屏幕右边缘以空格字符移动。*/ #define ECH(n) "\x1B[%dX",n /* 擦除字符 擦除当前光标位置的 个字符,方法是使用空格字符覆盖它们。*/ #define IL(n) "\x1B[%dL",n /* 插入行 将 行插入光标位置的缓冲区。 光标所在的行及其下方的行将向下移动。*/ -#define DL(n) "\x1B[%dM",n /* 删除行 从缓冲区中删除 行,从光标所在的行开始。*/ +#define DL(n) "\x1B[%dM\r",n /* 删除行 从缓冲区中删除 行,从光标所在的行开始。*/ /* 打印字体颜色设置 */ #define TX_DEF "\x1b[0m" diff --git a/src/xcmd.c b/src/xcmd.c index 578c474..1a339e2 100755 --- a/src/xcmd.c +++ b/src/xcmd.c @@ -364,13 +364,11 @@ char* xcmd_display_get(void) void xcmd_display_clear(void) { char *line = xcmd_display_get(); - xcmd_put_str("\x1B[0M"); + xcmd_print(DL(0)); #ifndef XCMD_DEFAULT_PROMPT_CLOLR xcmd_put_str(xcmd_get_prompt()); #else - xcmd_put_str(XCMD_DEFAULT_PROMPT_CLOLR); - xcmd_put_str(xcmd_get_prompt()); - xcmd_put_str(TX_DEF); + xcmd_print(XCMD_DEFAULT_PROMPT_CLOLR "%s" TX_DEF, xcmd_get_prompt()); #endif g_xcmder.parser.byte_num = 0; g_xcmder.parser.cursor = 0; diff --git a/src/xcmd_default_keys.c b/src/xcmd_default_keys.c index 1a4be1f..671b16c 100755 --- a/src/xcmd_default_keys.c +++ b/src/xcmd_default_keys.c @@ -73,7 +73,6 @@ static int xcmd_history_dw(void *pv) xcmd_display_clear(); if(line) { - xcmd_display_print(line); } return 0;