Complex Text Layout Language Support in the Solaris Operating Environment

1.5 Input and Text Handling

The Solaris operating environment locales support text input in a number of different writing systems. In the UTF-8 locale, to choose an input mode, press the Compose key and a two-letter code as in Table 1-1. For example, to input text in Thai, press Compose+tt. Alternatively, click the status area and select an input mode. (To select the English/European input mode, press Control+Space.)

Note -

In a CTL locale, to toggle between the English/European and CTL locale, press Control+Space.

The bottom left corner of the text window displays the current input mode, as shown in Figure 1-6.

Figure 1-6 Current input mode (Thai)


The user can mix text between English and the CTL language locale (Arabic, Hebrew, Thai) by switching input modes. The formatting rules governing the input stream are managed by the application.

Table 1-1 UTF-8 Input Mode two-letter codes













Unicode Hex 


Unicode Octal 






Note -

To switch modes, press Compose+code. On a X86 machine, use Ctrl+Shift+F1 as the Compose key.

CTL text can also be input with a lookup table as shown in Figure 1-7.

Figure 1-7 Lookup Thai input mode


To view a lookup table, click the status area, [Lookup], and a Lookup input mode. To input a character, click the character.

1.5.1 Cursor Positioning

The default cursor position is the upper left corner of the screen. The cursor direction depends on the input mode (left-to-right for Western languages and right-to-left for Arabic and Hebrew). The cursor position is determined after the second keystroke.

In English and other Western languages, the cursor redisplays to the right of each keystroke. In Hebrew and Arabic, the cursor remains stationary, with the character stream appearing to the right or left of the cursor, depending on the page alignment.

In Thai, the character cluster is composed to the left of the cursor. If a set of two or three keystrokes belong to the same cluster, the language engine values these keystrokes as zero and the cursor remains in place. The cursor moves to the right as each cluster is composed.

Note -

Cursor attributes can be reconfigured in the application resource file. For more information, see Step 4 in Section 3.1 CTL Motif Resources.

1.5.2 Character and Cell Deletion

To manage editing character clusters, the CTL language supports both character-based deletion and cell-based deletion. In character-based deletion, the user deletes the separate elements of the character cluster with each press of the Delete key. In cell-based deletion, the user deletes the entire cluster with one keystroke.

The two deletion modes can be assigned to separate keys on the keyboard using translation and resources. For more information, see Step 3 in Section 3.1 CTL Motif Resources.

1.5.3 Processing Stored Text

In the Solaris operating environment, all CTL text is stored in logical order--the order of the character input stream. The CTL language engines manage the transformation from CTL scripts to final display form on screen.

Most legacy systems containing CTL text store data in physical order--the order represented on screen. This was done because there was no processing capability at the terminal for reading and correctly rendering logical input. Screens of text were stored and then read again to screen.

Applications can read legacy data using the CTL language engines by configuring the appropriate language engine modifier. For more information, see Step 1 in Section 3.1 CTL Motif Resources.

For other language-engine configuration parameters, see CAE Specification: Portable Layout Services (ISBN 1-85912-142-X).