@@ -12,7 +12,7 @@ module stdlib_strings
1212
1313 public :: strip, chomp
1414 public :: starts_with, ends_with
15- public :: slice, find, replace_all
15+ public :: slice, find, replace_all, padl, padr
1616
1717
1818 ! > Remove leading and trailing whitespace characters.
@@ -669,18 +669,19 @@ pure function replace_all_char_char_char(string, pattern, replacement) result(re
669669
670670 end function replace_all_char_char_char
671671
672- ! > Left pad the input string with the 'pad_with' string
672+ ! > Left pad the input string with " " (1 whitespace)
673673 ! >
674674 ! > Returns a new string
675675 pure function padl_string_default (string , output_length ) result(res)
676676 type (string_type), intent (in ) :: string
677677 integer , intent (in ) :: output_length
678678 type (string_type) :: res
679679
680- res = string_type(padl_char_char(char (string), output_length, " " ))
680+ res = string_type(padl(char (string), output_length, " " ))
681+
681682 end function padl_string_default
682683
683- ! > Left pad the input string with the 'pad_with' string
684+ ! > Left pad the input string with the 'pad_with' character
684685 ! >
685686 ! > Returns a new string
686687 pure function padl_string_pad_with (string , output_length , pad_with ) result(res)
@@ -689,65 +690,58 @@ pure function padl_string_pad_with(string, output_length, pad_with) result(res)
689690 character (len= 1 ), intent (in ) :: pad_with
690691 type (string_type) :: res
691692
692- res = string_type(padl_char_char(char (string), output_length, pad_with))
693+ res = string_type(padl(char (string), output_length, pad_with))
694+
693695 end function padl_string_pad_with
694696
695- ! > Left pad the input string with the 'pad_with' string
697+ ! > Left pad the input string with " " (1 whitespace)
696698 ! >
697699 ! > Returns a new string
698700 pure function padl_char_default (string , output_length ) result(res)
699701 character (len=* ), intent (in ) :: string
700702 integer , intent (in ) :: output_length
701703 character (len= max (len (string), output_length)) :: res
702704
703- res = padl_char_char(string, output_length, " " )
705+ res = padl(string, output_length, " " )
706+
704707 end function padl_char_default
705708
706- ! > Left pad the input string with the 'pad_with' string
709+ ! > Left pad the input string with the 'pad_with' character
707710 ! >
708711 ! > Returns a new string
709712 pure function padl_char_pad_with (string , output_length , pad_with ) result(res)
710713 character (len=* ), intent (in ) :: string
711714 integer , intent (in ) :: output_length
712715 character (len= 1 ), intent (in ) :: pad_with
713716 character (len= max (len (string), output_length)) :: res
714-
715- res = padl_char_char(string, output_length, pad_with)
716- end function padl_char_pad_with
717-
718- ! > Left pad the input string with the 'pad_with' string
719- ! >
720- ! > Returns a new string
721- pure function padl_char_char (string , output_length , pad_with ) result(res)
722- character (len=* ), intent (in ) :: string
723- integer , intent (in ) :: output_length
724- character (len= 1 ), intent (in ) :: pad_with
725- character (len= max (len (string), output_length)) :: res
726717 integer :: string_length
727-
718+
728719 string_length = len (string)
729-
720+
730721 if (string_length < output_length) then
731722 res = repeat (pad_with, output_length - string_length)
732723 res(output_length - string_length + 1 : output_length) = string
733724 else
734725 res = string
735726 end if
736-
737- end function padl_char_char
738727
739- ! > Right pad the input string with the 'pad_with' string
728+ end function padl_char_pad_with
729+
730+ ! > Right pad the input string with " " (1 whitespace)
740731 ! >
741732 ! > Returns a new string
742733 pure function padr_string_default (string , output_length ) result(res)
743734 type (string_type), intent (in ) :: string
744735 integer , intent (in ) :: output_length
736+ character (len= max (len (string), output_length)) :: char_output
745737 type (string_type) :: res
746738
747- res = string_type(padr_char_char(char (string), output_length, " " ))
739+ char_output = char (string)
740+ res = string_type(char_output)
741+
748742 end function padr_string_default
749743
750- ! > Right pad the input string with the 'pad_with' string
744+ ! > Right pad the input string with the 'pad_with' character
751745 ! >
752746 ! > Returns a new string
753747 pure function padr_string_pad_with (string , output_length , pad_with ) result(res)
@@ -756,10 +750,11 @@ pure function padr_string_pad_with(string, output_length, pad_with) result(res)
756750 character (len= 1 ), intent (in ) :: pad_with
757751 type (string_type) :: res
758752
759- res = string_type(padr_char_char(char (string), output_length, pad_with))
753+ res = string_type(padr(char (string), output_length, pad_with))
754+
760755 end function padr_string_pad_with
761756
762- ! > Right pad the input string with the 'pad_with' string
757+ ! > Right pad the input string with " " (1 whitespace)
763758 ! >
764759 ! > Returns a new string
765760 pure function padr_char_default (string , output_length ) result(res)
@@ -768,39 +763,28 @@ pure function padr_char_default(string, output_length) result(res)
768763 character (len= max (len (string), output_length)) :: res
769764
770765 res = string
771- end function padr_char_default
772766
773- ! > Right pad the input string with the 'pad_with' string
774- ! >
775- ! > Returns a new string
776- pure function padr_char_pad_with (string , output_length , pad_with ) result(res)
777- character (len=* ), intent (in ) :: string
778- integer , intent (in ) :: output_length
779- character (len= 1 ), intent (in ) :: pad_with
780- character (len= max (len (string), output_length)) :: res
781-
782- res = padr_char_char(string, output_length, pad_with)
783- end function padr_char_pad_with
767+ end function padr_char_default
784768
785769 ! > Right pad the input string with the 'pad_with' character
786770 ! >
787771 ! > Returns a new string
788- pure function padr_char_char (string , output_length , pad_with ) result(res)
772+ pure function padr_char_pad_with (string , output_length , pad_with ) result(res)
789773 character (len=* ), intent (in ) :: string
790774 integer , intent (in ) :: output_length
791775 character (len= 1 ), intent (in ) :: pad_with
792776 character (len= max (len (string), output_length)) :: res
793777 integer :: string_length
794778
795779 string_length = len (string)
796-
780+
797781 res = string
798782 if (string_length < output_length) then
799783 res(string_length + 1 : output_length) = repeat (pad_with, &
800784 & output_length - string_length)
801785 end if
802-
803- end function padr_char_char
786+
787+ end function padr_char_pad_with
804788
805789
806790end module stdlib_strings
0 commit comments