国际语言环境指南

字符定向附加行为

这些操作通过使用布局服务变换 OutToInpProperty 缓冲区(对于嵌套级)来确定字符的定向。 因而,小部件的行为取决于语言环境的特定变换。 如果 OutToInp (尤其是 Property 缓冲区)中的信息不准确,则小部件可能会产生意外行为。 此外,由于语言环境特定的模块处于该规范的范围之外,相同文本、应用程序、资源值和 LayoutObject 配置的双向编辑行为可能因平台的不同而不同。

可视模式操作导致显示基于单元的行为。逻辑模式操作导致基于字符的逻辑行为。 例如,delete-right-character() 操作删除与显示单元相对应的输入缓冲区字符。 即,一个 LayoutObject 变换 “特性”字节“新单元指示器”为 1 的输入缓冲区字符,以及“新单元指示器” [有关 Property 缓冲区的详细信息,请参见《CAE 规范 》中的 m_transform_layout() 规范。] 为 0 的所有后继字符。

同样,对于 backward-character(),插入点在输入缓冲区中向后移动一个字符,光标被在与关联的输出缓冲区字符相对应的可视位置重新绘制。 这意味着需要进行若干次击键以在复合显示单元中移动;当插入点在“新单元指示器”是 0 的输入缓冲区字符(即音调符号或连字片段)中移动时,光标并不实际更改显示位置。

这意味着删除操作或者从逻辑/输入缓冲区端执行,或者从物理/输出端的显示单元级执行。 没有严格的、物理的逐字符删除模式,因为在输入和输出缓冲区之间不存在一对一的对应关系。 例如,给定的物理字符只能代表逻辑字符片断。