diff options
-rw-r--r-- | protocol.f90 | 14 | ||||
-rw-r--r-- | render.f90 | 11 |
2 files changed, 20 insertions, 5 deletions
diff --git a/protocol.f90 b/protocol.f90 index 3348663..8f0cd70 100644 --- a/protocol.f90 +++ b/protocol.f90 @@ -265,8 +265,11 @@ contains end if end if - if(present(once) .and. once) then - exit + ! All on the same line crashes GNU Fortran... + if(present(once)) then + if(once) then + exit + end if end if i = index(string, pattern) @@ -301,7 +304,12 @@ contains exit end if - call replace_text(url, url(pattern_start:i+2), once=.true.) + ! Check for root... + if(url(pattern_start-1:pattern_start) == "//") then + call replace_text(url, "/../", replacement="/", once=.true.) + else + call replace_text(url, url(pattern_start:i+2), once=.true.) + end if i = index(url, '/../') end do @@ -175,10 +175,17 @@ contains character(*), intent(in)::mimetype logical::type_supported integer::i - + + integer::istop + + istop = index(mimetype, ";") - 1 + if(istop < 1) then + istop = len_trim(mimetype) + end if + type_supported = .false. do i = 1, size(base_supported_types) - if(trim(mimetype) == trim(base_supported_types(i))) then + if(mimetype(1:istop) == trim(base_supported_types(i))) then type_supported = .true. exit end if |