修改DL(n)宏,修复在使用上键回看历史记录时历史记录向右移动的问题

This commit is contained in:
hqm 2021-11-29 10:27:57 +08:00
parent f2d49ad330
commit 4ac7518e43
3 changed files with 3 additions and 6 deletions

View File

@ -94,7 +94,7 @@ extern "C" {
#define DCH(n) "\x1B[%dP",n /* 删除字符 删除当前光标位置的 <n> 个字符,这会从屏幕右边缘以空格字符移动。*/ #define DCH(n) "\x1B[%dP",n /* 删除字符 删除当前光标位置的 <n> 个字符,这会从屏幕右边缘以空格字符移动。*/
#define ECH(n) "\x1B[%dX",n /* 擦除字符 擦除当前光标位置的 <n> 个字符,方法是使用空格字符覆盖它们。*/ #define ECH(n) "\x1B[%dX",n /* 擦除字符 擦除当前光标位置的 <n> 个字符,方法是使用空格字符覆盖它们。*/
#define IL(n) "\x1B[%dL",n /* 插入行 将 <n> 行插入光标位置的缓冲区。 光标所在的行及其下方的行将向下移动。*/ #define IL(n) "\x1B[%dL",n /* 插入行 将 <n> 行插入光标位置的缓冲区。 光标所在的行及其下方的行将向下移动。*/
#define DL(n) "\x1B[%dM",n /* 删除行 从缓冲区中删除 <n> 行,从光标所在的行开始。*/ #define DL(n) "\x1B[%dM\r",n /* 删除行 从缓冲区中删除 <n> 行,从光标所在的行开始。*/
/* 打印字体颜色设置 */ /* 打印字体颜色设置 */
#define TX_DEF "\x1b[0m" #define TX_DEF "\x1b[0m"

View File

@ -364,13 +364,11 @@ char* xcmd_display_get(void)
void xcmd_display_clear(void) void xcmd_display_clear(void)
{ {
char *line = xcmd_display_get(); char *line = xcmd_display_get();
xcmd_put_str("\x1B[0M"); xcmd_print(DL(0));
#ifndef XCMD_DEFAULT_PROMPT_CLOLR #ifndef XCMD_DEFAULT_PROMPT_CLOLR
xcmd_put_str(xcmd_get_prompt()); xcmd_put_str(xcmd_get_prompt());
#else #else
xcmd_put_str(XCMD_DEFAULT_PROMPT_CLOLR); xcmd_print(XCMD_DEFAULT_PROMPT_CLOLR "%s" TX_DEF, xcmd_get_prompt());
xcmd_put_str(xcmd_get_prompt());
xcmd_put_str(TX_DEF);
#endif #endif
g_xcmder.parser.byte_num = 0; g_xcmder.parser.byte_num = 0;
g_xcmder.parser.cursor = 0; g_xcmder.parser.cursor = 0;

View File

@ -73,7 +73,6 @@ static int xcmd_history_dw(void *pv)
xcmd_display_clear(); xcmd_display_clear();
if(line) if(line)
{ {
xcmd_display_print(line); xcmd_display_print(line);
} }
return 0; return 0;