2 个版本

0.1.1 2023 年 10 月 20 日
0.1.0 2023 年 10 月 20 日

#1646解析器实现

34 每月下载量

ISC 许可证

105KB
1.5K SLoC

编译 ncurses terminfo 文件解析器。

格式支持

这个 crate 处理现代 ncurses 版本使用的 二进制 terminfo 格式。它可能与其他 curses 实现(例如 NetBSD)一起工作,但没有保证。如果您发现广泛使用的替代实现,请提交问题。

该 crate 当前支持以下格式

  • ncurses 预 5.0 旧格式(SVr4 兼容)
  • ncurses 5.0 用户定义能力格式
  • ncurses 6.1 32 位整数格式

虽然 ncurses 将旧格式和 32 位整数格式的编译条目大小分别限制为 4096 和 32768 字节,并将名称字段的长度限制为 512 字节,但这个 crate 没有这样的限制。由于没有写入条目的支持,这应该不会引起问题。

可移植性

虽然二进制 terminfo 格式在 Unix 版本之间是事实上的标准,并且能力名称是 X/Open 标准的一部分,但实现中存储能力的顺序可能不同。这就是为什么提供了特定于 ncurses 的能力索引(见 index 功能)的原因。

如果您使用此 crate 用于为不同 curses 实现编译的 terminfo 文件,您可能需要不同的名称和索引。

有关更多信息,请参阅 term(5)可移植性部分

crate 功能

index

默认启用。

index 模块提供从能力名称到索引及其反向的有效转换。索引基于 ncurses。有关潜在注意事项,请参阅 可移植性

该模块使用大字符串表,因此您可能需要更长的编译时间或二进制大小。


expand

默认启用。

模块 [mod@expand] 实现了 tiparm() 函数,允许参数化能力字符串的展开。是 X/Open curses 标准的一部分。有关更多信息,请参阅 expand! 宏。


默认启用。

模块 search 提供了对系统中的 terminfo 条目的可定制搜索。默认情况下,它与 ncurses 的搜索行为相匹配。ncurses 5.6 中引入的哈希数据库存储不受支持。

依赖项

~1–11MB
~80K SLoC