
{
{ The clt$utility_attribute data type is used to define (clp$BEGIN_utility),
{ change (clp$CHANGE_utility_attributes), and get (clp$GET_utility_attributes)
{ the attributes of a command utility.  Not all of the attributes apply to
{ all of the requests. In a comment accompanying each attribute key in the
{ following type declaration are indications of which requests that attribute
{ may be used with.  The indications are given by the words in upper case
{ letters in the above list of interface names.
{

  TYPE
    clt$utility_attribute = record
      case key: clt$utility_attribute_key of
      = clc$null_utility_attribute = {BEGIN, CHANGE, GET}
        ,
      = clc$utility_command_search_mode = {BEGIN, GET}
        command_search_mode: clt$command_search_modes,
      = clc$utility_command_table = {BEGIN, CHANGE, GET}
        command_table: ^clt$command_table,
      = clc$utility_function_table = {BEGIN, CHANGE, GET}
        function_table: ^clt$function_table,
      = clc$utility_function_proc_table = {BEGIN, CHANGE, GET}
        function_processor_table: ^clt$function_processor_table,
      = clc$utility_interactive_include = {BEGIN, CHANGE, GET}
        interactive_include_processor: clt$utility_interactive_in_desc,
      = clc$utility_libraries = {GET} {for use by the UTILITY/UTILEND command}
        libraries: ^array [1 .. * ] of fst$path,
      = clc$utility_line_preprocessor = {BEGIN, CHANGE, GET}
        line_preprocessor: clt$utility_line_preproc_desc,
      = clc$utility_name = {GET}
        name: clt$utility_name,
      = clc$utility_online_manual = {BEGIN, CHANGE, GET}
        online_manual_name: ost$online_manual_name,
      = clc$utility_prompt = {BEGIN, CHANGE, GET}
        prompt: clt$utility_prompt,
      = clc$utility_subcmnd_log_enabled = {BEGIN, CHANGE, GET}
        subcommand_logging_enabled: boolean,
      = clc$utility_termination_command = {BEGIN, GET}
        termination_command: clt$command_name,
      casend,
    recend;

*copyc clt$command_name
*copyc clt$command_search_modes
*copyc clt$command_table
*copyc clt$function_processor_table
*copyc clt$function_table
*copyc clt$utility_attribute_key
*copyc clt$utility_interactive_in_desc
*copyc clt$utility_line_preproc_desc
*copyc clt$utility_name
*copyc clt$utility_prompt
*copyc fst$path
*copyc ost$online_manual_name
