C-W 正在删除我的命令提示符 - 如何停止此操作

问题描述 投票:0回答:1

我正在开发一个小 shell,并使用 libreadline 来获取命令输入。

问题

  • 当我使用 C-W 时,我的命令提示符被删除了

注意这只发生在我输入一个单词然后按 C-W,C-w 后立即不会删除提示。

来源

#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
#include <stdlib.h>
#include <string.h>

int ash_loop(void)
{
  char *line = 0;
  while(1)
  {
    // this is the current prompt - i dont want it to be deletable..
    printf("ash$ ");
    line = readline(0);
    if(!line)goto err0;
    printf("line: %s\n", line);
    free(line);
    break;
  }
  return 0;
  
err0:
  return 1;
}

int main(int argc, char *argv[])
{
  int rc; 
  rc = ash_loop();
  return rc; 
}

示例会话

$ ./ash                                                                      
line: 

我在这里输入单词,然后输入 C-W。

如何保留提示?

c console readline
1个回答
0
投票

您想使用提示参数

readline()
:

line = readline("ash$ ");
© www.soinside.com 2019 - 2024. All rights reserved.