After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 674563 - Fortran: case sensitiveness for routines and functions does not work
Fortran: case sensitiveness for routines and functions does not work
Status: VERIFIED FIXED
Product: doxygen
Classification: Other
Component: general
1.8.0-SVN
Other Windows
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2012-04-22 14:03 UTC by albert
Modified: 2012-05-20 12:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
PATCH: To handle case sensetiveness of routine names (4.83 KB, patch)
2012-04-22 14:12 UTC, albert
none Details | Review
PATCH: To handle case sensetiveness of \addtogroup (4.56 KB, patch)
2012-05-05 12:28 UTC, albert
none Details | Review

Description albert 2012-04-22 14:03:09 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.
Comment 1 albert 2012-04-22 14:12:20 UTC
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.
Comment 2 Dimitri van Heesch 2012-04-24 20:31:37 UTC
Thanks I'll include the patch in the next subversion update.
Comment 3 albert 2012-05-05 12:26:30 UTC
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
Comment 4 albert 2012-05-05 12:28:21 UTC
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.
Comment 5 Dimitri van Heesch 2012-05-05 13:15:08 UTC
Thanks, I'll include the patch in the next subversion update.
Comment 6 Dimitri van Heesch 2012-05-19 12:26:50 UTC
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.
Comment 7 albert 2012-05-20 12:18:33 UTC
Described bugs are fixed in version 1.8.1