logic for default value was broken

only use default value if nothing else is found (do not append)
This commit is contained in:
Martin Diehl 2018-06-19 22:59:52 +02:00
parent d177afa9e1
commit 76fcf6b204
1 changed files with 19 additions and 17 deletions

View File

@ -147,7 +147,6 @@ integer(pInt) function count(this,key)
class(tPartitionedStringList), intent(in) :: this class(tPartitionedStringList), intent(in) :: this
character(len=*), intent(in) :: key character(len=*), intent(in) :: key
type(tPartitionedStringList), pointer :: item type(tPartitionedStringList), pointer :: item
integer(pInt) :: i
count = 0_pInt count = 0_pInt
@ -326,9 +325,7 @@ function getStrings(this,key,defaultVal,raw)
cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')') cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')')
split = merge(.not. raw,.true.,present(raw)) split = merge(.not. raw,.true.,present(raw))
found = present(defaultVal) found = .false.
if (present(defaultVal)) getStrings = defaultVal
item => this%next item => this%next
do while (associated(item)) do while (associated(item))
@ -363,8 +360,13 @@ function getStrings(this,key,defaultVal,raw)
item => item%next item => item%next
end do end do
if (present(defaultVal) .and. .not. found) then
getStrings = defaultVal
found = .true.
endif
if (.not. found) call IO_error(140_pInt,ext_msg=key) if (.not. found) call IO_error(140_pInt,ext_msg=key)
end function
end function getStrings
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
@ -388,13 +390,9 @@ function getInts(this,key,defaultVal)
cumulative cumulative
cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')') cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')')
found = present(defaultVal) found = .false.
if (present(defaultVal)) then allocate(getInts(0))
getInts = defaultVal
else
allocate(getInts(0))
endif
item => this%next item => this%next
do while (associated(item)) do while (associated(item))
@ -412,6 +410,10 @@ function getInts(this,key,defaultVal)
item => item%next item => item%next
end do end do
if (present(defaultVal) .and. .not. found) then
getInts = defaultVal
found = .true.
endif
if (.not. found) call IO_error(140_pInt,ext_msg=key) if (.not. found) call IO_error(140_pInt,ext_msg=key)
end function getInts end function getInts
@ -438,13 +440,9 @@ function getFloats(this,key,defaultVal)
cumulative cumulative
cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')') cumulative = (key(1:1) == '(' .and. key(len_trim(key):len_trim(key)) == ')')
found = present(defaultVal) found = .false.
if (present(defaultVal)) then allocate(getFloats(0))
getFloats = defaultVal
else
allocate(getFloats(0))
endif
item => this%next item => this%next
do while (associated(item)) do while (associated(item))
@ -462,6 +460,10 @@ function getFloats(this,key,defaultVal)
item => item%next item => item%next
end do end do
if (present(defaultVal) .and. .not. found) then
getFloats = defaultVal
found = .true.
endif
if (.not. found) call IO_error(140_pInt,ext_msg=key) if (.not. found) call IO_error(140_pInt,ext_msg=key)
end function getFloats end function getFloats