/* Created by SDL V3.1-7     */
/* Source:  8-AUG-1988 10:46:02 EMULEX$DISK:[MEADOWS.UNSDL.VMS5-0_H]STR$ROUTINE */
#ifndef STR$ROUTINES.TEMPLATE_
#define STR$ROUTINES.TEMPLATE_
 
/*** MODULE STR$ROUTINES ***/
/*+~str$add~+*/
unsigned long int str$add(
    const unsigned long int  *asign,
    const long int  *aexp,
    const struct dsc$descriptor *adigits,
    const unsigned long int  *bsign,
    const long int  *bexp,
    const struct dsc$descriptor *bdigits,
    unsigned long int  *csign,
    long int  *cexp,
    struct dsc$descriptor *cdigits
    ) ;
/*~-str$add-~*/
/*+~str$analyze_sdesc~+*/
int str$analyze_sdesc(
    const struct dsc$descriptor *input_descriptor,
    unsigned short int  *word_integer_length,
    int * *data_address
    ) ;
/*~-str$analyze_sdesc-~*/
/*+~str$append~+*/
unsigned long int str$append(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string
    ) ;
/*~-str$append-~*/
/*+~str$case_blind_compare~+*/
long int str$case_blind_compare(
    const struct dsc$descriptor *first_source_string,
    const struct dsc$descriptor *second_source_string
    ) ;
/*~-str$case_blind_compare-~*/
/*+~str$compare~+*/
long int str$compare(
    const struct dsc$descriptor *first_source_string,
    const struct dsc$descriptor *second_source_string
    ) ;
/*~-str$compare-~*/
/*+~str$concat~+*/
unsigned long int str$concat(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string
    ) ;
/*~-str$concat-~*/
/*+~str$copy_dx~+*/
unsigned long int str$copy_dx(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string
    ) ;
/*~-str$copy_dx-~*/
/*+~str$copy_r~+*/
unsigned long int str$copy_r(
    struct dsc$descriptor *destination_string,
    const unsigned short int  *word_integer_source_length,
    const char  *source_string_address
    ) ;
/*~-str$copy_r-~*/
/*+~str$divide~+*/
unsigned long int str$divide(
    const unsigned long int  *asign,
    const long int  *aexp,
    const struct dsc$descriptor *adigits,
    const unsigned long int  *bsign,
    const long int  *bexp,
    const struct dsc$descriptor *bdigits,
    const long int  *total_digits,
    const unsigned long int  *round_truncate_indicator,
    unsigned long int  *csign,
    long int  *cexp,
    struct dsc$descriptor *cdigits
    ) ;
/*~-str$divide-~*/
/*+~str$dupl_char~+*/
unsigned long int str$dupl_char(
    struct dsc$descriptor *destination_string,
    ...
    /* const long int  *repetition_count, */
    /* const char  *ascii_character */
    ) ;
/*~-str$dupl_char-~*/
/*+~str$element~+*/
unsigned long int str$element(
    struct dsc$descriptor *destination_string,
    const long int  *element_number,
    struct dsc$descriptor *delimiter_string,
    struct dsc$descriptor *source_string
    ) ;
/*~-str$element-~*/
/*+~str$compare_eql~+*/
unsigned long int str$compare_eql(
    const struct dsc$descriptor *first_source_string,
    const struct dsc$descriptor *second_source_string
    ) ;
/*~-str$compare_eql-~*/
/*+~str$find_first_in_set~+*/
long int str$find_first_in_set(
    const struct dsc$descriptor *source_string,
    const struct dsc$descriptor *set_of_characters
    ) ;
/*~-str$find_first_in_set-~*/
/*+~str$find_first_not_in_set~+*/
long int str$find_first_not_in_set(
    const struct dsc$descriptor *source_string,
    const struct dsc$descriptor *set_of_characters
    ) ;
/*~-str$find_first_not_in_set-~*/
/*+~str$free1_dx~+*/
unsigned long int str$free1_dx(
    struct dsc$descriptor *string_descriptor
    ) ;
/*~-str$free1_dx-~*/
/*+~str$find_first_substring~+*/
unsigned long int str$find_first_substring(
    const struct dsc$descriptor *source_string,
    long int  *index,
    long int  *substring_index,
    ...
    /* const struct dsc$descriptor *substring */
    ) ;
/*~-str$find_first_substring-~*/
/*+~str$get1_dx~+*/
unsigned long int str$get1_dx(
    const unsigned short int  *word_integer_length,
    struct dsc$descriptor *character_string
    ) ;
/*~-str$get1_dx-~*/
/*+~str$left~+*/
unsigned long int str$left(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const long int  *end_position
    ) ;
/*~-str$left-~*/
/*+~str$len_extr~+*/
unsigned long int str$len_extr(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const long int  *start_position,
    const long int  *longword_integer_length
    ) ;
/*~-str$len_extr-~*/
/*+~str$match_wild~+*/
unsigned long int str$match_wild(
    const struct dsc$descriptor *candidate_string,
    const struct dsc$descriptor *pattern_string
    ) ;
/*~-str$match_wild-~*/
/*+~str$mul~+*/
unsigned long int str$mul(
    const unsigned long int  *asign,
    const long int  *aexp,
    const struct dsc$descriptor *adigits,
    const unsigned long int  *bsign,
    const long int  *bexp,
    const struct dsc$descriptor *bdigits,
    unsigned long int  *csign,
    long int  *cexp,
    struct dsc$descriptor *cdigits
    ) ;
/*~-str$mul-~*/
/*+~str$compare_multi~+*/
long int str$compare_multi(
    const struct dsc$descriptor *first_source_string,
    const struct dsc$descriptor *second_source_string,
    ...
    /* const unsigned long int flags_value, */
    /* const unsigned long int foreign_language */
    ) ;
/*~-str$compare_multi-~*/
/*+~str$pos_extr~+*/
unsigned long int str$pos_extr(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const long int  *start_position,
    const long int  *end_position
    ) ;
/*~-str$pos_extr-~*/
/*+~str$position~+*/
unsigned long int str$position(
    const struct dsc$descriptor *source_string,
    const struct dsc$descriptor *substring,
    ...
    /* const long int  *start_position */
    ) ;
/*~-str$position-~*/
/*+~str$prefix~+*/
unsigned long int str$prefix(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string
    ) ;
/*~-str$prefix-~*/
/*+~str$recip~+*/
unsigned long int str$recip(
    const unsigned long int  *asign,
    const long int  *aexp,
    const struct dsc$descriptor *adigits,
    const unsigned long int  *bsign,
    const long int  *bexp,
    const struct dsc$descriptor *bdigits,
    unsigned long int  *csign,
    long int  *cexp,
    struct dsc$descriptor *cdigits
    ) ;
/*~-str$recip-~*/
/*+~str$replace~+*/
unsigned long int str$replace(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const long int  *start_position,
    const long int  *end_position,
    const struct dsc$descriptor *replacement_string
    ) ;
/*~-str$replace-~*/
/*+~str$right~+*/
unsigned long int str$right(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const long int  *start_position
    ) ;
/*~-str$right-~*/
/*+~str$round~+*/
unsigned long int str$round(
    const long int  *places,
    const unsigned long int  *flags,
    const unsigned long int  *asign,
    const long int  *aexp,
    const struct dsc$descriptor *adigits,
    unsigned long int  *csign,
    long int  *cexp,
    struct dsc$descriptor *cdigits
    ) ;
/*~-str$round-~*/
/*+~str$translate~+*/
unsigned long int str$translate(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    const struct dsc$descriptor *translation_string,
    const struct dsc$descriptor *match_string
    ) ;
/*~-str$translate-~*/
/*+~str$trim~+*/
unsigned long int str$trim(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string,
    ...
    /* unsigned short int  *resultant_length */
    ) ;
/*~-str$trim-~*/
/*+~str$upcase~+*/
unsigned long int str$upcase(
    struct dsc$descriptor *destination_string,
    const struct dsc$descriptor *source_string
    ) ;
/*~-str$upcase-~*/
#endif
