在我正在处理的一个项目中,我试图使其接受用户命令并通过向上箭头提供历史记录。我旨在使这个项目不依赖其他库,并且我不想要求人们安装readline开发文件来编译我的项目。有没有人知道一个简单的替代GNU Readline的解决方案,它只提供简单的功能?
Editline是一个具有BSD风格许可证的文本编辑器。
注:旧版本的editline非常简单。这里有一个只有两个C文件和一个头文件,总共约1500行代码的版本。我们已经使用它多年了。
我找到了一个,Redis的知名作者antirez创建了linenoise,这是一个更简单的替代品。
BusyBox包含类似于readline的命令行编辑代码,但更小、更简单,完全支持UTF-8。将其转化为独立库可能很容易。
Editline库是由Simmule Turner和Rich Salz于1992年创建的。当时,他们选择在“C News-like”版权下分发代码,请参阅LICENSE文件以获取详细信息。
[...]
此版本的editline库是Minix3源代码的一个分支。其他已知版本,通常基于最初的comp.sources.unix发布,包括:
- Debian libeditline,http://packages.qa.debian.org/e/editline.html
- Heimdal,http://www.h5l.org
- Festival speech-tools,http://festvox.org/festival/
- Steve Tell的editline补丁,http://www.cs.unc.edu/~tell/dist.html
每个分支中最有趣的补丁和错误修复都已合并到此处。
editline(libedit)目前不支持多字节字符。
我也同意Dan Loewenherz的观点,readline库非常普及。例如,大多数Linux发行版都使用带有readline的bash。大多数Python发行版也带有readline。如果您的项目需要类似readline的库,最好使用GNU readline库,因为它是一个流行的选择,用户可能已经在操作系统上安装了它。
--enable-widec
标志已弃用。 - AndreyT