clip_tail Function

private pure function clip_tail(message) result(clipped)

Fit a cause message into MAX_CAUSE_MSG_LEN keeping its HEAD, marking any truncation with a trailing TRUNCATION_MARKER.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: message

Return Value character(len=MAX_CAUSE_MSG_LEN)


Called by

proc~~clip_tail~~CalledByGraph proc~clip_tail clip_tail proc~error_wrap error_t%error_wrap proc~error_wrap->proc~clip_tail proc~read_char_record read_char_record proc~read_char_record->proc~error_wrap proc~read_int32_array read_int32_array proc~read_int32_array->proc~error_wrap proc~read_int64_array read_int64_array proc~read_int64_array->proc~error_wrap proc~read_real_dp_array read_real_dp_array proc~read_real_dp_array->proc~error_wrap proc~read_real_sp_array read_real_sp_array proc~read_real_sp_array->proc~error_wrap proc~write_char_record write_char_record proc~write_char_record->proc~error_wrap proc~write_int32_array write_int32_array proc~write_int32_array->proc~error_wrap proc~write_int64_array write_int64_array proc~write_int64_array->proc~error_wrap proc~write_real_dp_array write_real_dp_array proc~write_real_dp_array->proc~error_wrap proc~write_real_sp_array write_real_sp_array proc~write_real_sp_array->proc~error_wrap interface~read_array read_array interface~read_array->proc~read_char_record interface~read_array->proc~read_int32_array interface~read_array->proc~read_int64_array interface~read_array->proc~read_real_dp_array interface~read_array->proc~read_real_sp_array interface~write_array write_array interface~write_array->proc~write_char_record interface~write_array->proc~write_int32_array interface~write_array->proc~write_int64_array interface~write_array->proc~write_real_dp_array interface~write_array->proc~write_real_sp_array proc~soa_read_int32_field soa_read_int32_field proc~soa_read_int32_field->interface~read_array proc~soa_read_int64_field soa_read_int64_field proc~soa_read_int64_field->interface~read_array proc~soa_read_logical_field soa_read_logical_field proc~soa_read_logical_field->interface~read_array proc~soa_read_prologue soa_read_prologue proc~soa_read_prologue->interface~read_array proc~soa_read_real_dp_field soa_read_real_dp_field proc~soa_read_real_dp_field->interface~read_array proc~soa_read_real_sp_field soa_read_real_sp_field proc~soa_read_real_sp_field->interface~read_array proc~soa_write_int32_field soa_write_int32_field proc~soa_write_int32_field->interface~write_array proc~soa_write_int64_field soa_write_int64_field proc~soa_write_int64_field->interface~write_array proc~soa_write_logical_field soa_write_logical_field proc~soa_write_logical_field->interface~write_array proc~soa_write_prologue soa_write_prologue proc~soa_write_prologue->interface~write_array proc~soa_write_real_dp_field soa_write_real_dp_field proc~soa_write_real_dp_field->interface~write_array proc~soa_write_real_sp_field soa_write_real_sp_field proc~soa_write_real_sp_field->interface~write_array interface~soa_read_field soa_read_field interface~soa_read_field->proc~soa_read_int32_field interface~soa_read_field->proc~soa_read_int64_field interface~soa_read_field->proc~soa_read_logical_field interface~soa_read_field->proc~soa_read_real_dp_field interface~soa_read_field->proc~soa_read_real_sp_field interface~soa_write_field soa_write_field interface~soa_write_field->proc~soa_write_int32_field interface~soa_write_field->proc~soa_write_int64_field interface~soa_write_field->proc~soa_write_logical_field interface~soa_write_field->proc~soa_write_real_dp_field interface~soa_write_field->proc~soa_write_real_sp_field proc~particle_soa_deserialize particle_soa_t%particle_soa_deserialize proc~particle_soa_deserialize->proc~soa_read_prologue proc~particle_soa_serialize particle_soa_t%particle_soa_serialize proc~particle_soa_serialize->proc~soa_write_prologue

Variables

Type Visibility Attributes Name Initial
integer(kind=default_int), private :: last
integer(kind=default_int), private :: msg_len

Source Code

   pure function clip_tail(message) result(clipped)
      !! Fit a cause message into MAX_CAUSE_MSG_LEN keeping its HEAD, marking
      !! any truncation with a trailing TRUNCATION_MARKER.
      character(len=*), intent(in) :: message
      character(len=MAX_CAUSE_MSG_LEN) :: clipped
      integer(default_int) :: msg_len, last

      msg_len = int(len_trim(message), default_int)
      if (msg_len <= MAX_CAUSE_MSG_LEN) then
         clipped = message
      else
         last = MAX_CAUSE_MSG_LEN - int(len(TRUNCATION_MARKER), default_int)
         clipped = message(1:last)//TRUNCATION_MARKER
      end if
   end function clip_tail