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>
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to