Skip to content

Commit 933a367

Browse files
committed
resolved inserting 0 lengthed slist in list bug
1 parent 089f325 commit 933a367

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/stdlib_stringlist_type.f90

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -642,23 +642,27 @@ subroutine insert_before_stringlist_int_impl( list, idxn, slist )
642642
type(stringlist_type), intent(in) :: slist
643643

644644
integer :: i
645-
integer :: work_idxn, idxnew
645+
integer :: work_idxn, inew
646646
integer :: pre_length, post_length
647647

648-
work_idxn = idxn
649648
pre_length = slist%len()
650-
call insert_before_empty_positions( list, work_idxn, pre_length )
651-
post_length = slist%len()
649+
if (pre_length > 0) then
650+
work_idxn = idxn
652651

653-
do i = 1, min( work_idxn - 1, pre_length )
654-
idxnew = work_idxn + i - 1
655-
list%stringarray(idxnew) = slist%stringarray(i)
656-
end do
652+
call insert_before_engine( list, work_idxn, pre_length )
653+
post_length = slist%len()
657654

658-
do i = work_idxn + post_length - pre_length, post_length
659-
idxnew = work_idxn + i - post_length + pre_length - 1
660-
list%stringarray(idxnew) = slist%stringarray(i)
661-
end do
655+
inew = work_idxn
656+
do i = 1, min( work_idxn - 1, pre_length )
657+
list%stringarray(inew) = slist%stringarray(i)
658+
inew = inew + 1
659+
end do
660+
661+
do i = work_idxn + post_length - pre_length, post_length
662+
list%stringarray(inew) = slist%stringarray(i)
663+
inew = inew + 1
664+
end do
665+
end if
662666

663667
end subroutine insert_before_stringlist_int_impl
664668

0 commit comments

Comments
 (0)