GNOME Bugzilla – Bug 674563
Fortran: case sensitiveness for routines and functions does not work
Last modified: 2012-05-20 12:18:33 UTC
This bug has been split off from bug 523163. The case insensitiveness for Fortran is not handled when creates links to routines in the source code. Here is the code that reproduces (Elliott Sales de Andrade): subroutine Foo(t) integer :: t end subroutine Foo subroutine Bar(t) integer :: t call foo(t) end subroutine program test call Foo(1) end program test and a more complete example: ! definition of routine names in upper (U) or lower(l) case ! xy_.. ! x : call ! y : definition program tstf implicit none double precision UU_FF() double precision ul_ff() double precision LU_FF() double precision ll_ff() a = UU_FF() a = UL_FF() a = lu_ff() a = ll_ff() call UU_SS() call UL_SS() call lu_ss() call ll_ss() end double precision function UU_FF() end double precision function ul_ff() end double precision function LU_FF() end double precision function ll_ff() end subroutine UU_SS() end subroutine ul_ss() end subroutine LU_SS() end subroutine ll_ss() end In version 1.8.0 only part of the routines / functions are linked.
Created attachment 212541 [details] [review] PATCH: To handle case sensetiveness of routine names Fortran is a case insensitive language. The parser didn't take this into account for functions and subroutines. This patch converts all Fortran function and subroutine names to lowercase so they can be found for references, call/ callee graphs and links in the code. On nearly all places the routines will show up in lowercase even though the routine in the code has another case.
Thanks I'll include the patch in the next subversion update.
The patch for the recognition to handle case sensitiveness of routine names has as side effect that also the names as used with \addtogroup are translated to lowercase, the effect is that members of this group are not shown in the output. In the output of the example below the variable VAR_LOWER is shown in the output of the group with caption "Module name lower case", but the variable with the name VAR_UPPER is not shown with the group with caption "Module name upper case" (the caption is shown. MODULE modul_lower ! !> \addtogroup mlow Module name lower case !> \{ ! integer, save :: VAR_LOWER !> \} END MODULE modul_upper MODULE modul_upper ! !> \addtogroup Mupp Module name upper case !> \{ ! integer, save :: VAR_UPPER !> \} END MODULE modul_upper
Created attachment 213490 [details] [review] PATCH: To handle case sensetiveness of \addtogroup This patch corrects the error as introduced with the previous patch as attached in this bug. This patch has to be applied after the previous patch has been applied.
Thanks, I'll include the patch in the next subversion update.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.1. Please verify if this is indeed the case. Reopen the bug if you think it is not fixed and please include any additional information that you think can be relevant.
Described bugs are fixed in version 1.8.1