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 669758 - Same function in multiple Tcl namespaces not added
Same function in multiple Tcl namespaces not added
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.7.6.1
Other Linux
: Normal critical
: ---
Assigned To: r.zaumseil
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2012-02-09 16:15 UTC by wolfgang.kechel
Modified: 2012-02-25 15:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Simple test case of two tiny tcl files and doxygen configuration. (18.85 KB, application/x-bzip-compressed-tar)
2012-02-09 16:15 UTC, wolfgang.kechel
  Details
diff against version 799 (533 bytes, patch)
2012-02-11 22:51 UTC, r.zaumseil
none Details | Review

Description wolfgang.kechel 2012-02-09 16:15:42 UTC
Created attachment 207201 [details]
Simple test case of two tiny tcl files and doxygen configuration.

A function being present in two Tcl namespaces is not added for every namespace. Warning messages are created.

/tmp/doxy/b.tcl:15: warning: documented function `b::dowhatw' was not declared or defined.

The output does not contain documentation for ::b::dowhat and the function is not added to the specified module.

Problem: This is a nasty shop stopper if you have a function that is present in multiple namespaces, in my case functions like valid, get,...
-----------------

File a.tcl:
package provide a 1.0.0;

##
# Namespace a
namespace eval ::a {
}

##
# @addtogroup TCL_API
# @{

##
# Do something
# @param[in] w An argument
proc ::a::dowhat {w} {
}

## @}

-----------------------------------------

File b.tcl:
package provide b 1.0.0;

##
# Namespace b
namespace eval ::b {
}

##
# @addtogroup TCL_API
# @{

##
# Do something
# @param[in] w An argument
proc ::b::dowhat {w} {
}

## @}

---------------------------------------
Attachment contains very simple example with doxygen configuration file.
Comment 1 r.zaumseil 2012-02-11 22:51:55 UTC
Created attachment 207367 [details] [review]
diff against version 799

The patch add the functions to the namespaces and the group.
The adding to the group page is different to the handling in
p.e. cpp files. There will only be the namespace in the group page.

I'm not sure about the implications and I will try to consult
Dimitri one the issue.
Comment 2 Dimitri van Heesch 2012-02-12 19:03:50 UTC
Hi Rene,

The extra condition should be ok for C++ files as well as far as I can see.

I didn't manage to create a similar C++ example were this extra condition is needed though, so I'm not sure yet what is different between Tcl and C++ that would require this for Tcl, but not for C++.

I'll include this change anyway.
Comment 3 r.zaumseil 2012-02-12 19:57:56 UTC
Just a remark. The same code in C++ (two function with same name and
arg list in different namespaces and put with @addtogroup and @{ and @})
gives only the namespaces on the group page. With the patch the code in
tcl gives the namespaces AND the functions on the group page. The last one
seems logical for me.
Comment 4 wolfgang.kechel 2012-02-13 08:12:13 UTC
I added the line to my 1.7.6.1 source code and the result is now OK for me (at least for Tcl). I do have something in a different language with namespaces to check the behaviour as well.
Thanks for the fix.
Comment 5 Dimitri van Heesch 2012-02-25 15:37:35 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.0. 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.