?? RIGHT := 110 ??
*copyc OSD$DEFAULT_PRAGMATS
MODULE ocm$crack_program_name;




{ *callc pmdname }

{ *callc osxssa  }
{ *callc osxasp  }

{ *callc cldval  }
{ *callc cldeere }
?? PUSH (LISTEXT := ON) ??
*copyc PMT$PROGRAM_NAME

*copyc OSP$SET_STATUS_ABNORMAL
*copyc OSP$APPEND_STATUS_PARAMETER

*copyc clt$value
*copyc CLE$ECC_EXPRESSION_RESULT
?? POP ??
?? NEWTITLE := '  OCP$CRACK_PROGRAM_NAME', EJECT ??

  PROCEDURE [XDCL] ocp$crack_program_name (keyword: string ( * );
        parameter: clt$value;
    VAR program_name: pmt$program_name;
    VAR status: ost$status);


    VAR
      parameter_string: [STATIC] string (40) := ' for parameter ';


    CASE parameter.kind OF
    = clc$name_value =
      program_name := parameter.name.value;
    = clc$string_value =
      program_name := parameter.str.value;
    ELSE
      osp$set_status_abnormal ('OC', cle$wrong_kind_of_value, 'NAME or STRING', status);
      osp$append_status_parameter (osc$status_parameter_delimiter, parameter.descriptor, status);
      parameter_string (16, * ) := keyword;
      osp$append_status_parameter (osc$status_parameter_delimiter, parameter_string, status);
      RETURN;
    CASEND;


  PROCEND ocp$crack_program_name;
?? OLDTITLE ??




MODEND ocm$crack_program_name.
