[  Next Article  |
Previous Article  |
Book Contents |
Library Home |
Legal |
Search ]
Commands Reference, Volume 5
setmaps Command
Purpose
Sets terminal maps or code set maps.
Syntax
setmaps [ -v ] [ -c | -h ]
setmaps [ -v ] -s -i MapName
setmaps [ -v ] -s -I File1
setmaps [ -v ] [ -D ] [ -k KeyName ] [ -d DirectoryPath ] 
{ -i | -o } MapName
setmaps [ -v ] [ -D ] [ -d DirectoryPath ] -t MapName
setmaps [ -v ] [ -D ] [ -k KeyName ] { -I | -O } File1
setmaps [ -v ] [ -D ] [ -k KeyName ] [ -r ] -l File2
setmaps [ -v ] [ -D ] [ -k KeyName ] [ -r ] -L File1
Description
Note: If this command is run 
without root user authority, the code set map is not loaded, only debugged.
The setmaps command handles terminal and 
code set maps. The -s flag must be used for code set maps. The operating 
system uses input and output terminal maps to convert internal data 
representations to the ASCII characters supported by asynchronous terminals. If 
you enter the setmaps command with no flags, it displays the names of the 
current input and output terminal maps.
A terminal map is a text file containing a list 
of rules that associate a pattern string with a replacement string. This file 
normally resides in the /usr/lib/nls/termmap directory. The operating 
system uses an input map file to map input from the keyboard to an application 
and an output map file to map output from an application to the display.
Terminal mapping works as follows:
- The system collects characters in a buffer 
until a pattern specified by a rule in the map file matches a substring in the 
buffer.
- The system then constructs and returns the 
replacement string specified by the rule. 
This processing continues with the remaining 
characters in the buffer.
The rules of a terminal map can test and change 
the state of the pattern processor. The state is identified by a single-byte 
character, conventionally a digit (0 through 9). The state is reset to 0, the 
initial state, whenever the system loads a new map or flushes the terminal input 
or output buffer (such as when it processes a KILL or INTR character or when a 
program issues an ioctl system call). A terminal map can use states to 
detect multibyte escape sequences, among other tasks. You can test for state 
x by specifying @x in a pattern. You can set the state to x by 
including @x in the replacement string.
The setmaps command, when using the 
-s flag, assigns a code set map to the standard input device. The 
operating system uses code set maps to determine the number of bytes of memory a 
character requires and the number of display columns it requires.
Flags
| -c | Clears all mappings on this terminal. | 
| -d DirectoryPath | Causes the DirectoryPath variable to be used as the path to 
the directory that contains the MapName variable. Specifying this flag 
and variable overrides the /usr/lib/nls/termmap directory. | 
| -D | Produces a debug program printout of the specified map on the 
standard output device before loading the map. When using this to run the debug 
program on new maps, do not run with root user authority until the map is fully 
debugged to prevent the map from actually being loaded. | 
| -h | Prints the usage information of the setmaps command (used with 
the -v flag for advanced users). | 
| -i MapName | Selects the /usr/lib/nls/termmap/MapName.in file as the input 
map. When used with the -s flag, this flag selects the 
/usr/lib/nls/csmap/MapName file as the terminal code set map file. | 
| -I File1 | Selects the contents of the File1 variable as the input map. 
The file specified by the File1 variable can be either a full path name 
or a path name relative to the current working directory. When used with the 
-s flag, this flag selects the contents of the File1 variable as 
the terminal code page map file. | 
| -k KeyName | Associates the contents of the KeyName variable with the map 
being selected. This key name overrides the default key, which is normally set 
to the value of the MapName variable. | 
| -l File2 | Loads the /usr/lib/nls/termmap/File2 file for later use. The 
File2 variable includes the full path name and suffix (if any) of the map 
file. Note: You must have root user 
authority to specify this flag. | 
| -L File1 | Loads the specified map for later use. The File1 variable 
includes the full path name and suffix (if any) of the map file. Note: You must have root user 
authority to specify this flag. | 
| -o MapName | Selects the /usr/lib/nls/termmap/MapName.out file as the 
terminal output map. | 
| -O File1 | Selects the contents of the File1 variable as the terminal 
output map. The  File1 variable includes the full path name and suffix 
(if any) of the map file. | 
| -r | Forces reloading of the specified map, even if it is already loaded. 
Terminals using the old map continue to do so until they are logged off or until 
their maps are explicitly reset. If you do not specify this flag, a map is 
loaded only if it has not already been loaded into the kernel. Note: You must have root user 
authority to specify this flag. | 
| -s | Treats any map as a code set map. | 
| -t MapName | Selects the /usr/lib/nls/termmap/MapName.in file as the 
terminal input map and the /usr/lib/nls/termmap/MapName.out file as the 
terminal output map. | 
| -v | Selects verbose output. | 
All maps loaded must have unique names. Use the 
-k flag to eliminate naming conflicts. Only the -i, -o, and 
-t flags implicitly add a suffix. Other flags specifying map names should 
include a suffix if appropriate. If a requested map name is already loaded in 
the kernel, that map is used even if the path information provided on the 
command line implies a different map.
To reset the code set map to its original state, 
the /usr/lib/nls/csmap/sbcs code set map should be used.
Examples
- To display the current map settings for this 
terminal, enter:
setmaps 
- To clear all mapping for the current terminal, enter:
setmaps -c 
- To set up mapping (both input and output maps) for an 
ibm3161-C terminal, enter:
setmaps -t ibm3161-C 
- To load the vt220 input map into the 
kernel as the fred map, enter:
setmaps -k fred -i vt220 
- To gather debug output for a new map called 
bob in a file called bob.dump, enter:
setmaps -D -L /tmp/bob > bob.dump 
- To set up a code set map conforming to the IBM-932 
code page for this terminal, enter:
setmaps -s -i IBM-932 
- To set up a code set map conforming to the IBM-943 
code page for this terminal, enter:
setmaps -s -i IBM-943 
- To set up a code set map from the file 
myEUC for this terminal, enter:
setmaps -s -I myEUC 
Files
| /usr/bin/setmaps | Contains the setmaps command. | 
| /usr/lib/nls/termmap/*.in | Contains input map files. | 
| /usr/lib/nls/termmap/*.out | Contains output map files. | 
| /usr/lib/nls/csmap/sbcs | Contains code set map for a single-byte code page. | 
| /usr/lib/nls/csmap/IBM-943 | Contains code set map for the IBM-943 code page. | 
| /usr/lib/nls/csmap/IBM-eucJP | Contains code set map for the IBM-eucJP code page. | 
Related Information
The stty command.
The setmaps file 
format, termios.h file.
The setcsmap 
subroutine.
National Language 
Support Overview in AIX Version 4.3 System Management Concepts: Operating System and Devices
[  Next Article  |
Previous Article  |
Book Contents |
Library Home |
Legal |
Search ]