2 个版本
0.1.1 | 2023 年 10 月 20 日 |
---|---|
0.1.0 | 2023 年 10 月 20 日 |
#1646 在 解析器实现
34 每月下载量
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 文件,您可能需要不同的名称和索引。
crate 功能
index
默认启用。
index
模块提供从能力名称到索引及其反向的有效转换。索引基于 ncurses。有关潜在注意事项,请参阅 可移植性。
该模块使用大字符串表,因此您可能需要更长的编译时间或二进制大小。
expand
默认启用。
模块 [mod@expand
] 实现了 tiparm()
函数,允许参数化能力字符串的展开。是 X/Open curses 标准的一部分。有关更多信息,请参阅 expand!
宏。
搜索
默认启用。
模块 search
提供了对系统中的 terminfo 条目的可定制搜索。默认情况下,它与 ncurses 的搜索行为相匹配。ncurses 5.6 中引入的哈希数据库存储不受支持。
依赖项
~1–11MB
~80K SLoC