PROCEDURE rap$define_nqs_host (
  machine_id, mid, mi: integer = $required
  host, h: record
      display_name: application
      primary_names: list rest of application
    recend = $required
  status)

  VAR
    ls: status
  VAREND

  EDIT_FILE $system.nqs.host_map_file output=$null prolog=$null

    locate_text $string(machine_id) n=1 l=all word=yes status=ls
    IF ls.normal THEN
      put_line ' Machine id '//machine_id//' is already used.'
      EXIT PROCEDURE
    IFEND

    locate_text $string(host.display_name) n=1 l=all word=yes upper_case=yes status=ls
    IF ls.normal THEN
      put_line ' Host name "'//host.display_name//'" is already defined.'
      EXIT PROCEDURE
    IFEND

    FOR EACH alias IN host.primary_names DO
      locate_text $string(alias) n=1 l=all word=yes upper_case=yes status=ls
      IF ls.normal THEN
        put_line ' Host name "'//alias//'" is already defined.'
        EXIT PROCEDURE
      IFEND
    FOREND

    FOR EACH s IN $apply($string(host display_element) x//' '//machine_id) DO
      insert_line s placement=after insertion_location=last
    FOREND

    put_line ' Host "'//host.display_name//'" defined as machine id '//machine_id//'.'

  QUIT yes

  create_file_permit $system.nqs.host_map_file public am=read

PROCEND rap$define_nqs_host

