Ron,

Thanks for your reply, I definitively got closer to what I need.

There’s an odd behaviour when expanding the macro.

I’m using this function:

/**
* A C function with a modifier
* @param param A parameter
* @return zero.
*/
int chess_storage(x0) firmware_function(unsigned long int chess_storage(a0) 
param);

If I use a PREDEFINED as suggested:

PREDEFINED             = chess_storage(x)=chess_storage_##x

I get the documentation as

int chess_storage_

firmware_function<regular__c_8h.html#a10ebc6e9e9d0553d708d2daddb03c294> 
(unsigned long int chess_storage_ param)


But if I use this macro:

#define chess_storage( x )    chess_storage_##x

And

EXPAND_AS_DEFINED      = chess_storage

I get the correct concatenation:

int chess_storage_x0

firmware_function<regular__c_8h.html#adbbb22277ff4bb26c338cf1bbb34b76a> 
(unsigned long int chess_storage_a0 param)


Any ideas as to why Doxygen is not concatenating?

Thank you very much,

Leonardo

From: Ron W [mailto:ronw.m...@gmail.com]
Sent: July-19-19 9:14 PM
To: doxygen-users <doxygen-users@lists.sourceforge.net>
Subject: Re: [Doxygen-users] Doxygen and C function names with modifiers with 
arguments


[External Email]: This email arrived from an external source - Please exercise 
caution when opening any attachments or clicking on links.

On Fri, Jul 19, 2019 at 8:03 AM 
<doxygen-users-requ...@lists.sourceforge.net<mailto:doxygen-users-requ...@lists.sourceforge.net>>
 wrote:
Date: Thu, 18 Jul 2019 21:09:12 +0000
From: Leonardo Pereira Santos 
<leonardo.pereirasan...@onsemi.com<mailto:leonardo.pereirasan...@onsemi.com>>
Subject: [Doxygen-users] Doxygen and C function names with modifiers with 
arguments

Because the directive has a parameter, Doxygens interprets the directive as the 
function name.

The usual solution would be to use PREDEFINED directive in the Doxyfile as 
suggested 
here<http://doxygen.10944.n7.nabble.com/Is-it-possible-to-force-doxygen-to-ignore-compiler-specific-keywords-td2857.html<https://urldefense.proofpoint.com/v2/url?u=http-3A__doxygen.10944.n7.nabble.com_Is-2Dit-2Dpossible-2Dto-2Dforce-2Ddoxygen-2Dto-2Dignore-2Dcompiler-2Dspecific-2Dkeywords-2Dtd2857.html&d=DwMFaQ&c=MHZppzMdXMt3JYjCV71UsQ&r=k8KpFgIlnqWJ_UCMIorh7Kaa71fn5J46EO16Eh-Dgx5RVhccwhWRNbrzEpx0RhhR&m=g-riXF1SYJAuGArmVPDklJZABzcPz0dJfJ6jg0cJHdI&s=LKy49M3L0BEk3AMMp4aDgRAMUNmba3b3B1QnrsryYZM&e=>>
 to completely ignore the storage modifier:



PREDEFINED             = chess_storage(x)=

Not currently able to test this, but maybe this would work:

PREDEFINED = chess_storage(x))=chess_storage_##x

If not, you may need to create your own preprocessor to handle this case.

_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to