完成大写目录时出现libreadline问题

时间:2016-09-19 18:54:50

标签: c shell readline

这是我创造的一块外壳。我在使用libreadline时遇到了一些麻烦,因为当shell加载后我尝试使用自动完成功能在目录中进行cd(所以按TAB键),按下回车后我访问目录但是在另一个提示符之前我得到一些奇怪的输出打印出来。我注意到只有当目录名以大写字母开头时才会发生这种情况。

示例:" user ::〜%cd Github" < - 写入按Tab键自动完成Github

下一个提示是:"8b�/�user:: Github%" 我真的不明白为什么,这对我来说真的很奇怪。

svn revert -R repository/*

1 个答案:

答案 0 :(得分:0)

您不能将strcat与非\0终止字符串一起使用:

char *prompt = malloc(sizeof(char) * LINE_BUF);
char *current, buffer[TOK_BUF];
current = getcwd(buffer, TOK_BUF);

strcat(prompt, get_user());

使用strcpy代替strcatcalloc代替malloc