chomp_substring_char_char Function

private pure function chomp_substring_char_char(string, substring) result(chomped_string)

Remove trailing substrings from string.

Arguments

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

Return Value character(len=:), allocatable


Called by

proc~~chomp_substring_char_char~~CalledByGraph proc~chomp_substring_char_char chomp_substring_char_char interface~chomp chomp interface~chomp->proc~chomp_substring_char_char proc~chomp_set_string_char chomp_set_string_char interface~chomp->proc~chomp_set_string_char proc~chomp_substring_char_string chomp_substring_char_string interface~chomp->proc~chomp_substring_char_string proc~chomp_substring_string_char chomp_substring_string_char interface~chomp->proc~chomp_substring_string_char proc~chomp_substring_string_string chomp_substring_string_string interface~chomp->proc~chomp_substring_string_string proc~chomp_set_string_char->interface~chomp proc~chomp_substring_char_string->interface~chomp proc~chomp_substring_string_char->interface~chomp proc~chomp_substring_string_string->interface~chomp

Variables

Type Visibility Attributes Name Initial
integer, private :: last
integer, private :: nsub

Source Code

   pure function chomp_substring_char_char(string, substring) result(chomped_string)
      character(len=*), intent(in) :: string
      character(len=*), intent(in) :: substring
      character(len=:), allocatable :: chomped_string
      integer :: last, nsub

      last = len(string)
      nsub = len(substring)
      if (nsub > 0 .and. nsub <= last) then
         do while (last >= nsub)
            if (string(last - nsub + 1:last) == substring) then
               last = last - nsub
            else
               exit
            end if
         end do
      end if

      if (last <= 0) then
         chomped_string = ''
      else
         chomped_string = string(1:last)
      end if

   end function chomp_substring_char_char