The Keymap section is an optional section you can create in the progress.ini file to define mappings between standard ASCII (7-bit) characters and extended (8-bit) characters. Extended characters are typically non-English alphabetical characters. OpenEdge uses these keymap entries to build a translation table for processing characters in the input and output streams.
Note: Using the Keymap section is the Version 6 technique for mapping characters. Using conversion tables is a better technique for processing characters. For information about defining conversion tables, see OpenEdge Development: Internationalizing Applications.
Use the IN statement, in a keymap entry, to map an ASCII character to an extended character using the following syntax:
Syntax
[ MAP-language] :IN(\ascii-char)=\extended-char:
language
An identifier that appears with the MAP option.
ascii-char
The 7-bit character, in octal (\nnn) format. You must specify all three digits.
extended-char
The 8-bit character, in octal (\nnn) format. You must specify all three digits.
Use the OUT statement, in a keymap entry, to map an extended character to an ASCII character using the following syntax:
[ MAP-language] :OUT(\extended-char)=\ascii-char:
You can use multiple IN and OUT statements in a single keymap entry.
If you use extended character sets, you must specify character mappings for each character set on a per-terminal basis. For example, the following code fragment demonstrates how to map characters to German language characters:
The IN statements in the preceding example map ASCII characters (B, A, a, O, o, U, and u) to German characters (ß, Ä, ä, Ö, ö, Ü, and ü). When OpenEdge sees the character A (\101) on input, it converts the character to Ä (\216). Likewise, when OpenEdge needs to send an Ä to the terminal, it sends (\101). The terminal sees A and displays Ä.
Suppose the terminal cannot display an Ä. You can use the OUT statement to specify an appropriate character to display for Ä, such as capital A. For example:
[MAP-german]
:OUT(\216)=\101:
You can also specify keymap entries for the input and output streams using the MAP option with each of the following ABL language elements:
INPUT FROM statement
INPUT THROUGH statement
INPUT-OUTPUT THROUGH statement
OUTPUT THROUGH statement
OUTPUT TO statement
For more information about these language elements, see OpenEdge Development: Internationalizing Applications. .