
*copyc OSD$DEFAULT_PRAGMATS
?? NEWTITLE := 'NOS/VE  Remote Host :' ??
MODULE rhm$get_link_user_descriptor;

{ PURPOSE:
{   The purpose of this module is to return the current link
{   user descriptor.

?? NEWTITLE := '         Global Type Declarations' ??
?? SET (LIST := OFF) ??
?? EJECT ??
*copyc RHT$LINK_USER_DESCRIPTOR
*copyc rhd$condition_codes

?? TITLE := '         External Procedures Referenced By This Module' ??
?? SET (LIST := OFF) ??
?? EJECT ??
*copyc OSP$SET_STATUS_ABNORMAL

?? TITLE := '         rhp$get_link_user_descriptor' ??
?? SET (LIST := ON) ??
?? EJECT ??
*copyc RHH$GET_LINK_USER_DESCRIPTOR

   VAR
    rhv$link_user_current_family: [XREF] string(31),
    rhv$link_user_descriptor_p: [XREF] ^rht$link_user_descriptor;

PROCEDURE [XDCL, #GATE] rhp$get_link_user_descriptor  (
  VAR lud: rht$link_user_descriptor;
  VAR status: ost$status);

  VAR
    lud_p: ^rht$link_user_descriptor,
    valid_family_name: string(31),
    endchar:char;

{ Initialize a pointer to the pointer of the link user descriptors.

  lud_p := rhv$link_user_descriptor_p;
  status.normal := TRUE;

{ Return if no link user description defined.

  IF lud_p = NIL THEN
    osp$set_status_abnormal ('RH',rhe$lud_cannot_be_found, '',
      status);
    RETURN;
  IFEND;

{ Return the link user descriptor that was last entered by a
{   link_user command.

  lud := lud_p^;
  valid_family_name := rhv$link_user_current_family;

  /scan_thru_lud_list/
  WHILE TRUE DO
    IF (lud_p <> NIL) THEN
      IF valid_family_name = lud_p^.family THEN
        LUD := lud_p^;
        RETURN;
      ELSE
        lud_p := lud_p^.next_lud_p;
      IFEND;
    ELSE
      osp$set_status_abnormal ('RH',rhe$lud_cannot_be_found, valid_family_name, status);
      RETURN;
    IFEND;
  WHILEND;

PROCEND rhp$get_link_user_descriptor;

MODEND rhm$get_link_user_descriptor;
