setmaps 文件格式

用途

定义一个代码集映射文件和一个终端映射文件的文本。

描述

代码集映射文件的文本由该代码集的描述组成。 终端映射文件的文本由一组包含规则的内容组成。

代码集映射文件

代码集映射文件的文本是对该代码集的描述。 它指定要在流上推送的可选 转换器模块 。 代码集映射文件位于 /usr/lib/nls/csmap 目录中。 它的名称是代码集名称。

该代码集映射文件包含以下行:

描述
名称: 名称
类型: M | S
多字节处理: EUC
ioctl EUC_WSET: w1:d1 w2:d2 w3:d3
下转换器: /usr/lib/drivers/ lwconv
上方转换器: /usr/lib/drivers/ upconv

这些行具有以下含义:

描述
名称 指定代码集名称。 它同时也是代码集映射文件名。
TYPE 指定代码集类型。 它可以是下列其中一项:
M
表示多字节代码集。
表示单字节代码集。
多字节处理 指定该代码集的多字节处理的类型。 仅当 类型M时,该行才是必需的。 它必须为 EUC(表示 EUC 多字节代码集)。
ioctl EUC_WSET 指定用于 EUC_WSET ioctl 操作的参数。 仅当 类型M时,该行才是必需的。 w1w2w3 参数指定了代码集的内存宽度; d1d2d3 参数指定了代码集的屏幕宽度。
下转换器  
上转换器 指定要在流上使用的 下转换器和上转换器 。 仅当代码集是非 EUC 多字节代码集时,该行才是必需的。

例如, ISO 1 代码集的代码集映射文件将包含下列行:

Name:   ISO8859-1
Type:   S

另一个示例: IBM-943 代码集的代码集映射文件将包含下列行:

Name :                  IBM-943
Type :                  M
Multibyte handling :    EUC
ioctl EUC_WSET :        2:2,1:1,2:2
lower converter :       /usr/lib/drivers/lc_sjis
upper converter :       /usr/lib/drivers/up_sjis

终端映射文件

终端映射文件的文本是一个规则集。 每个规则都具有以下格式:

pattern:replacement

输入模式字符串的大小限制为 10 个字符的长度,而替换模式字符串的大小限制为 16 个字符的长度。

该模式字符串可以包含以下特殊字符:

描述
? 匹配任何单个字节。
@x 仅当模式处理器处于 X状态 (其中 X 是任何单字节) 时,才与此规则匹配。 (此序列与输入缓冲区中的字符不匹配。)
\?\@\\ 是否阻止模式处理器解释? (问号) , @ (at 符号) 或 \ (反斜杠) 作为特殊字符。
\ddd 以八进制表示法表示任何字节。
\xdd 以十六进制表示法表示任何字节。

替换字符串可以包括以下特殊字符:

描述
$n 在输入字符串中使用与此模式匹配的第 N个字符,其中 N 是十进制数字。
@x 将模式处理器移动到状态 X。 (此序列不会成为替换字符串的组成部分。)
\$\@\\ 防止将模式处理器解释为 $, @ 或 \ 特殊字符。
\ddd 以八进制表示法表示任何字节。
\xdd 以十六进制表示法表示任何字节。

文件

描述
/usr/lib/nls/csmap/sbcs 用于单字节代码页的代码集映射
/usr/lib/nls/csmap/IBM-943 IBM-943 代码页的代码集映射
/usr/lib/nls/csmap/IBM-eucJP IBM-eucJP 代码页的代码集映射
/usr/lib/nls/csmap/IBM-eucKR IBM-eucKR 代码页的代码集映射
/usr/lib/nls/csmap/IBM-eucTW IBM-eucTW 代码页的代码集映射
/usr/lib/nls/termmap/*.in 输入映射文件
/usr/lib/nls/termmap/*.out 输出映射文件