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;