修改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 ECH(n) "\x1B[%dX",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"

View File

@ -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;

View File

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