?? RIGHT := 110 ??
?? NEWTITLE := 'CREATE_ORDER_DEFINITION Subutility: QUIT Subcommand.' ??
MODULE ram$quit_creod;

{ PURPOSE:
{   This module contains the procedure to end the create order definition
{   utility session.
{
{ DESIGN:
{   The compiled module resides in RAF$LIBRARY.
{
{ NOTES:
{

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc rae$package_software_cc
*copyc clp$end_scan_command_file
*copyc clp$scan_parameter_list
*copyc ost$status
?? POP ??
*copyc osp$generate_error_message
*copyc osp$set_status_abnormal
*copyc rav$creod_scratch_segment
*copyc rav$creod_utility_name

?? TITLE := 'Global Declarations Declared by This Module', EJECT ??

?? TITLE := '[XDCL] rap$quit_creod', EJECT ??

  PROCEDURE [XDCL] rap$quit_creod
    (    parameter_list: clt$parameter_list;
     VAR status: ost$status);

{ pdt quit_creod_pdt (
{   status : var of status = $optional
{   )

?? PUSH (LISTEXT := ON) ??

  VAR
    quit_creod_pdt: [STATIC, READ, cls$pdt] clt$parameter_descriptor_table := [^quit_creod_pdt_names,
      ^quit_creod_pdt_params];

  VAR
    quit_creod_pdt_names: [STATIC, READ, cls$pdt_names_and_defaults] array [1 .. 1] of
      clt$parameter_name_descriptor := [['STATUS', 1]];

  VAR
    quit_creod_pdt_params: [STATIC, READ, cls$pdt_parameters] array [1 .. 1] of clt$parameter_descriptor := [

{ STATUS }
    [[clc$optional], 1, 1, 1, 1, clc$value_range_not_allowed, [NIL, clc$variable_reference,
      clc$array_not_allowed, clc$status_value]]];

?? POP ??


    VAR
      ignore_status: ost$status,
      message_status: ost$status,
      write_definition_needed_flag_p: ^boolean;


    status.normal := TRUE;

    clp$scan_parameter_list (parameter_list, quit_creod_pdt, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    RESET rav$creod_scratch_segment.sequence_p;
    NEXT write_definition_needed_flag_p IN rav$creod_scratch_segment.sequence_p;

    IF write_definition_needed_flag_p^ = TRUE THEN
      osp$set_status_abnormal ('RA', rae$command_wrid_required, '', message_status);
      osp$generate_error_message (message_status, ignore_status);
    IFEND;


    clp$end_scan_command_file (rav$creod_utility_name, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

  PROCEND rap$quit_creod;
MODEND ram$quit_creod;
