PROCEDURE rap$bring_forward_uncor_tips (
  status)

  "$FORMAT=OFF
  VAR
    actual_di_object: file
    actual_di_products: file
    base_di_products: file
    cdcnet_tip: name
    list_of_actual_tips: list 0..$max_list of name
    list_of_base_tips: list 0..$max_list of name
    list_of_uncorrected_tips: list 0..$max_list of name
    local_status: status

    rav$subproduct_information: (XREF) rat$subproduct_information
  VAREND
  "$FORMAT=ON

*IF $variable(wev$proc_doc,declared)<>'UNKNOWN'
"
"  This routine updates DI_OBJECT in the actual installation catalog
"with CDCNET tips that were not corrected (ie. either CDCNET did not
"correct them, or the customer chose not to install a correction for
"a tip; this later constitutes an error that is warned about in the
"CDCNET correction documentation).  Only DI_OBJECT is updated with
"the uncorrected tips; DI_PRODUCTS is not updated.
"
"  The subcatalog DI_PRODUCTS in the actual version catalog and the
"base version catalog is used to determine the list of unocrrected
"tips.  A list of files in each DI_PRODUCTS subcatalog is generated
"and subtracted, leaving the list of uncorrected tips.  If the list
"has entries, each tip is added to DI_OBJECT in the actual installation
"catalog.
"
*IFEND


  actual_di_object = rav$subproduct_information.actual_installation_path.DI_OBJECT
  actual_di_products = rav$subproduct_information.actual_installation_path.DI_PRODUCTS
  base_di_products = rav$subproduct_information.base_level_path.DI_PRODUCTS

  rap$get_catalog_file_names c=actual_di_products ..
    names=list_of_actual_tips status=local_status
  EXIT procedure WITH local_status WHEN NOT local_status.normal

  rap$get_catalog_file_names c=base_di_products ..
    names=list_of_base_tips status=local_status
  EXIT procedure WITH local_status WHEN NOT local_status.normal

  list_of_uncorrected_tips = $difference(list_of_base_tips, list_of_actual_tips)

  IF NOT $nil(list_of_uncorrected_tips) THEN

    FOR each cdcnet_tip in list_of_uncorrected_tips DO
      update_library f=base_di_products//cdcnet_tip l=actual_di_object status=local_status
      EXIT procedure WITH local_status WHEN NOT local_status.normal
    FOREND

  IFEND

PROCEND rap$bring_forward_uncor_tips
