PROCEDURE (ram$discn) display_command_names, discn, display_command_name (
  status)

  "$FORMAT=OFF
  VAR
    choice:string = ''
    command_line:string = ''
    discle_out: file =$fname($unique)
    ign_status: status
    lines: array 1 .. 24-2-3-1 of string
    matched_commands: file =$fname($unique)
    menu_out: file =$fname($unique)
    number_of_lines: integer = 0
    search_string: string = ''
  VAREND
  "$FORMAT=ON"

  WHEN any_fault OR exit DO
    delete_file f=(discle_out menu_out matched_commands) status=ign_status
  WHENEND

  set_file_attributes f=discle_out pw=45 pf=continuous fc=legible
  display_command_list_entry e=all do=(commands names functions) ..
        o=discle_out
  accept_line v=search_string i=input ..
        p='Enter wild card search string - '
  exit_proc when search_string = ' '
  IF $scan_any('*[', search_string) = 0 THEN
    search_string = '*' // $translate(utl, search_string) // '*'
  IFEND
  find_string ss=search_string i=discle_out o=matched_commands

  rewind_file f=matched_commands

  LOOP
    accept_line v=lines i=matched_commands.$asis lc=number_of_lines
    EXIT WHEN number_of_lines = 0
COLLECT_TEXT o=menu_out
Commands that match are:

**
    FOR i = 1 TO number_of_lines DO
COLLECT_TEXT o=menu_out.$eoi sm='?'
?$substr('  ',1,2-$strlen($strrep(i)))//i?. ?lines(i)?
**
    FOREND
COLLECT_TEXT o=menu_out.$eoi

Choose the item for which you want information or press RETURN to
continue.
**
    copy_file i=menu_out o=$output
    accept_line v=choice i=input p=''
    IF choice <> '' THEN
      command_line = $substring(..
'display_command_information  display_function_information ', ..
            $integer(lines($integer(choice))(1)='$')*29+1, 29) // ..
            lines($integer(choice)) // ' do=all '
      EXIT
    IFEND
  LOOPEND

  include_command c=command_line

  delete_file f=(discle_out menu_out matched_commands) status=ign_status

PROCEND display_command_names
