[Doxygen-users] Trigger inclusion of <defname> tags in xml output, when different than <declname>
Brought to you by:
dimitri
|
From: <sou...@ne...> - 2020-04-15 17:45:58
|
Why is it that my xml output no longer includes <defname> tags, when the
declared and defined names for parameters differ?
For more detail - say I have a method whose parameter names differ between
the declaration and definition:
// sepDeclAndDef.h
class SepDeclAndDef {
int myFunc(int declaredName);
};
// sepDeclAndDef.cpp
#include "sepDeclAndDef.h"
int SepDeclAndDef::myFunc(int definedName)
{
return 7;
}
I have some older doxygen output that, in situations like this, would
include a <defname> tag in the xml output:
// class_sep_decl_and_def.xml (old)
...
<memberdef kind="function" id=
"class_sep_decl_and_def_1aeb6a0f5c0c1e410803fb46a0f48eec36" prot="private"
static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type>int</type>
<definition>int SepDeclAndDef::myFunc</definition>
<argsstring>(int declaredName)</argsstring>
<name>myFunc</name>
<param>
<type>int</type>
<declname>declaredName</declname>
<defname>definedName</defname>
</param>
However, whenever I try and regenerate the xml now, it never includes the
<defname>:
// class_sep_decl_and_def.xml (old)
...
<memberdef kind="function" id=
"class_sep_decl_and_def_1aeb6a0f5c0c1e410803fb46a0f48eec36" prot="private"
static="no" const="no" explicit="no" inline="no" virt="non-virtual">
<type>int</type>
<definition>int SepDeclAndDef::myFunc</definition>
<argsstring>(int declaredName)</argsstring>
<name>myFunc</name>
<param>
<type>int</type>
<declname>declaredName</declname>
</param>
The older xml was generated using doxygen-1.8.11... however, I've tried
re-generating the xmls using 1.8.11 and current (1.8.18), and I can't
reproduce the <defname> inclusions.
I suspect that there's some configuration change that triggered this, but I
can't find what it is.
(Also, I can't compare the settings directly, because the source code base,
including the doxygen configuration, is not something I have access to - I
am writing a tool / plugin for a product, and the makers of that product
are good enough to supply me with the doxygen-generated xmls, from which I
parse some necessary information. I was hoping to give them easy
instructions on how to get it to output the <defname> tags again, since I
rely on them, but I can't figure out how to make them myself.)
Looking at the source, ie:
https://github.com/doxygen/doxygen/blob/341f860ab7ae3e5255891b0984bec8b36e7557ef/src/xmlgen.cpp#L869
if (defArg && !defArg->name.isEmpty() && defArg->name!=a.name)
{
t << " <defname>";
writeXMLString(t,defArg->name);
t << "</defname>" << endl;
}
...it would appear that the intent is to include the <defname> if it's
different - but I haven't been able to figure out why this isn't happening.
Any insight would be appreciated. Thanks!
- Paul
PS - Apologies if this ends up cross-posted on the mailing list and
discussion forum. I first tried posting to the forum, but the post did not
seem to go through... but it's possible it's just very delayed!
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
|