NAME csrc - Builds a DCE character and code set registry on a host SYNOPSIS csrc [argument] ... ARGUMENTS -i source_filename Reads code set values from the source file you specify rather than from the default code set registry source file dce$common:[etc]code_set_registry.txt -m intermediate_cs_name Indicates the code set to be used as an intermediate code set -o destination_filename Places the generated code set registry file in the location you specify rather than in the default location dce$common:[etc]code_set_registry.db DESCRIPTION The Code Set Registry Compiler csrc creates a character and code set registry file from the information supplied in a character and code set registry source file. A code set registry source file is composed of a series of code set records. Each record describes, in human-readable form, the mapping between an OSF-registered or (optionally) a user-defined unique code set value and the character string that a given operating system uses when referring to that code set (called the "local code set name"). A code set registry file is the binary version of the source file; the DCE RPC routines for character and code set interoperability use the file to obtain a client's or a server's supported code sets and to translate between operating system-dependent names for code sets and the unique identifiers assigned to them. A code set registry file must exist on each host in an "internationalized" DCE cell (a DCE cell that supports applications that use the DCE RPC character and code set interoperability features). CREATING THE SOURCE FILE Code set registry source files are created for input to csrc in two instances: + By DCE licensees, when they are porting DCE to a specific operating system platform and plan for their DCE product to support internationalized DCE applications. In this instance, DCE licensees modify a template code set registry source file supplied on the DCE source tape to contain, for each code set that their platform supports, the local code set names for those supported code sets. Licensees can also add to this file any vendor-specific, non-OSF registered code set names and values that their platform supports. + By cell administrators, when they are configuring machines that are part of an internationalized DCE cell. In this instance, the cell administrator adds the local code set names of any additional code sets that the site supports to the licensee- generated code set registry source file for each different operating system platform that exists in the cell. The cell administrator can also add to each platform-specific source file any site-specific, non-OSF registered code set names and values. Each code set record specifies one code set, and has the following form: start field_list end where field_list consists of the following keyword-value or keyword- text pairs: description text A comment string that briefly describes the code set. The text field can contain multiple lines; use the backslash character (\) to continue the line. Use this field to give a detailed description of the code set and character set(s). loc_name text A maximum 32-byte string (31 character data bytes plus a terminating NULL) that contains the operating system- specific name of a code set or the keyword NONE. Use this field to specify the name that your site uses to refer to this code set and the code set converters associated with it. For example, on UNIX platforms, code set converters are usually implemented under the iconv scheme. Check the iconv converter directory to determine the code set names. rgy_value value A 32-bit hexadecimal value that uniquely identifies this code set. A registry value can be one that OSF has assigned or one that a DCE licensee or cell administrator has assigned. Licensee or cell administrator-defined values must be in the range 0xf5000000 through 0xfffffff. char_values value[:value] One or more 16-bit hexadecimal values that uniquely identify each character set that this code set encodes. A character value can be one that OSF has assigned or one that a DCE licensee or a cell administrator has assigned. Use the colon character (:) to separate multiple character set values. max_bytes value A 16-bit value that specifies the maximum number of bytes this code set uses to encode one character. The count should include any single-shift control characters, if used. In the source file, braces({}) can be used as synonyms for the start and end keywords. Use one or more spaces or tabs to separate field names and values. An unquoted # (number sign) introduces a comment; in this case, the csrc utility ignores everything between the comment character and the end of the line. The OSF DCE source tape provides a partial version of a code set registry source file in the file /usr/lib/nls/csr/code_set_registry.txt. This source file contains records for all OSF-registered code sets, and assigns the text string NONE to loc_name fields intended for modification to a local code set name. DCE licensees who port DCE to their operating system platform and who plan to support internationalized DCE RPC applications must replace the NONE text string with their local name for the code set, for each code set that their operating system platform supports. If their platform does not support a given code set, they must leave the NONE keyword in the code set record. Cell administrators of internationalized DCE cells carry out the same procedure on the licensee-supplied, platform-specific source files that exist at their site. For each platform-specific source file, they replace the NONE keyword with the local code set names for any site-specific supported code sets. DCE licensees and cell administrators can also add vendor-specific or site-specific code set values that have not been registered with OSF. These vendor or user-defined values must be in the range 0xf5000000 through 0xfffffff. Here is an excerpt from the OSF-supplied code set registry source file: start description ISO 8859:1987; Latin Alphabet No. 1 loc_name NONE rgy_value 0x00010001 char_values 0x0011 max_bytes 1 end start description ISO 8859-2:1987; Latin Alphabet No. 2 loc_name NONE code_value 0x00010002 char_values 0x0012 max_bytes 1 end start description ISO 8859-3:1988; Latin Alphabet No. 3 loc_name NONE code_value 0x00010003 char_values 0x0013 max_bytes 1 end start description ISO 8859-6:1987; Latin-Arabic Alphabet loc_name NONE code_value 0x00010006 char_values 0x0016 max_bytes 1 end [...] start description ISO/IEC 10646-1:1993; UCS-2 Level 1 loc_name NONE code_value 0x00010100 char_values 0x1000 max_bytes 2 end [...] start description JIS eucJP:1993; Japanese EUC loc_name NONE code_value 0x00030010 char_values 0x0011:0x0080:0x0081:0x0082 max_bytes 3 end GENERATING THE CODE SET REGISTRY FILE DCE licensees use csrc to create licensee-supplied code set registry files for their internationalized DCE product. Cell administrators of internationalized DCE cells use the csrc utility to create site-specific code set registry files for each host in the cell. The cell administrator runs the csrc program on each host in the cell. When invoked without options, csrc uses the default source file dce$common:[etc]code_set_registry.txt and creates the default output file dce$common:[etc]code_set_registry.db. Use the -i and -o options to redirect csrc to use a specific source file or generate a specific output file. The csrc utility also generates a log file named CSRC_LOG in the current directory. ADDING INTERMEDIATE CODE SETS Use the -m option to add a maximum of five intermediate code set names to the code set registry file's intermediate code set priority list. The order in which you specify intermediate code sets determines their order of precedence in the list; that is, the first intermediate code set you specify with -m becomes the first intermediate code set in the priority list, and thus will be the first code set used should an intermediate code set be required for client-server communication. If you do not specify intermediate code sets with -m, the Universal code set ISO 10646 will be used as the default intermediate code set. RESTRICTIONS You need write permission to the dce$common:[etc] directory, which usually requires privileges. FILES dce$common:[etc]code_set_registry.txt Default pathname for code set registry source file. dce$common:[etc]code_set_registry.db Default pathname for code set registry object file EXAMPLES % csrc -i dia0:[test.i18n_app]code_set_registry.txt - -o code_set_registry.db s In the previous example, the log file CSRC_LOG is created in the current working directory, testi18n_app. RELATED INFORMATION FUNCTIONS: dce_cf_get_csrgy_filename dce_cs_loc_to_rgy dce_cs_rgy_to_loc rpc_rgy_get_codesets BOOKS: OSF DCE Administration Guide OSF DCE Application Development Guide-Core Components